`
gzspark
  • 浏览: 107309 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

写个crontab监控程序进程,让自己睡个好觉!

阅读更多
兄弟们不知道是否有被要求24小时不允许关机的痛苦经历,有时半夜正在做着美梦却被客户或老板抓起来一通臭骂,服务器怎么回事down了,网站访问不了... 唉,真是痛不欲生呀!

经历过N次折磨后,我下定决心要改变这种情况,想一下,也许我可以写个crontab来监控程序的运行情况,如果服务停止或发生了不可修复的错误时,自动重启服务器,这样我就不用担心半夜被人抓起来骂了。

说动手就动手,虽说我linux/unix脚本不是很熟,但我想应该也难不到我,左瞧瞧右看看,拼出了一个脚本,给大家参考下,大家可以修改下路径与端口适应自己的程序:

#查找当前工作日志文件,判断是否发生不可修复的错误,若有则重启
LOG=`ls /workdir/server-*.log -lrt |tail -1`
ERROR_NUM=`cat $LOG | grep java.lang.OutOfMemoryError | wc -l`
if [ $ERROR_NUM -ne 0 ];then
        echo "found $ERROR_NUM times at $LOG"
        kill -9 `netstat -anp|grep :::8080 | awk '{print substr($7,1,index($7,"/java")-1)}'`
        cd /workdir;exec startserver.sh
        exit
fi
#检查当前服务是否还在运行,若已停止,则重新启动
PROCESS_NUM=`netstat -anp|grep :::8080 | awk '{print substr($7,1,index($7,"/java")-1)}' | wc -l`
if [ $PROCESS_NUM -eq 0 ];
then
        cd /workdir;exec startserver.sh
fi




然后在crontab中定时执行此脚本,就可以了!嘿... 这下闹心的电话少多了,当然不要忘记定时去看下日志哦!

本人原创文章,转载请注明出处!
2
0
分享到:
评论

相关推荐

    linux下监控进程程序

    通过crontab机制,在设定的时间间隔内反复执行监控程序,达到每隔一个时间间隔监控一下进程的运行情况,若有异常则报警。 2,注意事项: (1)进程列表在一个configurationfile.txt文件中,进程名的格式又/n分隔,...

    linux进程监控与自动重启的简单实现方法

    linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能。 实现原理: 由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重启并写入日志。 crontab...

    一个纯PHP实现的多进程,定时任务管理工具,兼容部分crontab语法, 支持守护进程

    cronManager是一个纯PHP实现的定时任务管理工具,api简单清晰,采用的是多进程模型,进程通信采用的是消息队列,任务监控也提供了简单的命令,方便易用

    用shell脚本监控进程是否存在 不存在则启动的实例

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/sh ps -fe|grep processString |grep -v grep if [ $? -ne 0 ] then echo start process..... else echo runing..... fi ##### ...

    使用php开发,基于swoole扩展开发的工具swoole-crontab.zip

    * -m [--monitor] 监控进程是否在运行,如果在运行则不管,未运行则启动进程 * --worker 开启worker 可以针对redis队列读取并编写处理逻辑 * --tasktype task任务获取类型,[file|mysql] 默认是file * --checktime 默认...

    Linux计划任务crontab运行脚本不正确的问题

     写好的程序希望在崩溃之后能够自启动,于是利用linux的crontab功能,添加一个计划任务,每分钟执行一个脚本查看需要监控的进程是否还在,如果不在则启动之,否则不做任何事情。这么一个简单的脚本在crontab中运行...

    入门学习Linux常用必会60个命令实例详解doc/txt

    虚拟控制台最有用的是,当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。 shutdown 1.作用 shutdown命令的作用是关闭计算机,它的使用权限是超级用户。 2.格式 shutdown [-h][-i...

    Linux定时执行任务at和crontab命令详解

    假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了。 设置at命令很简单,指示定运行的时间,那么就会在哪个时候运行。at类似打印 进程,会把任务放到/var/spool/at目录中,到指定时间运行它 。...

    CommandTrayHost:Windows的命令行程序监视器系统

    CommandTrayHost Windows的命令行程序监控器系统托盘特征json配置系统托盘跑特权儿童显示/隐藏启用/禁用守护程序多个命令行程序当CommandTrayHost退出时,所有子进程将被杀死。 自定义系统托盘图标和控制台图标i18n ...

    Shell脚本专家指南

    主要内容包括如何使小到中型的系统管理任务自动化,分析系统数据并编辑配置文件,使用bash和ksh等编写IAnux、Unix和OSX应用程序的脚本文件等。 《Shell脚本专家指南》面向中高级的shell程序员,以及需要解决日常问题...

    Linux指令一周通 (技术图书大系).azw3

    5.50 swatch指令:系统监控程序 5.51 tload指令:显示系统负载 5.52 top指令:显示进程信息 5.53 uname指令:显示系统信息 5.54 useradd指令:建立用户账号 5.55 userconf指令:设置用户账号 5.56 userdel指令:删除...

    Ubuntu权威指南(2/2)

    9.3 监控进程及系统资源 255 9.4 终止进程的运行 259 9.5 调整分时进程的优先级 261 9.5.1 nice命令 261 9.5.2 renice命令 263 9.5.3 调整进程优先级的作用 263 第10章 proc文件系统 265 10.1 进程内存映像文件 266 ...

    Ubuntu权威指南(1/2)

    9.3 监控进程及系统资源 255 9.4 终止进程的运行 259 9.5 调整分时进程的优先级 261 9.5.1 nice命令 261 9.5.2 renice命令 263 9.5.3 调整进程优先级的作用 263 第10章 proc文件系统 265 10.1 进程内存映像文件 266 ...

    Linux命令笔记

    1:vmstat命令监控系统资源 语法: vmstat 刷新延时 刷新次数 2:dmesg开机时内核检测信息 语法: dmesg 3:free查看内存使用状态 语法: free [选项] 4:查看CPU信息 /proc/cpuinfo 5:uptime启动时间和平均负载 语法:...

    工作中常用的linux命令

    2.查看哪个程序在用特定端口 ................................................................................................ 3 3.实时监控日志文件内容 ......................................................

Global site tag (gtag.js) - Google Analytics