linux进程监控:判断是否存在,是否僵死进程,进行重启和杀死重启

最近做了一个进程调度框架,为了确保进程正常运行,进行了轮训检测;在进程不存在的时候,自动重启,如果存在,判断是否僵死,如果僵死,就kill掉,再自动重启;
直接上脚本:

轮询检测进程(cron)
创建/root/runcron 目录, (目录是自己随便建的)
	在这个目录下存放要执行的shell脚本,  参考脚本在下边;记得设置脚本的可执行权限
	chmod u+x filename
在  /etc/crontab 中添加自己的任务,/root/runcron 是自己创建的,
*/1 * * * * root run-parts /root/runcron
这样定时任务就自己执行了, 查看命令
tail -f /var/log/cron
日志会有执行的记录,如果没有执行, 就重新启动下crond服务,
/sbin/service crond reload   ##--->> 重新加载
/sbin/service crond restart   ## ---->重启服务
判断进程是否存在,从而重启或者杀死
##脚本
#!/bin/bash
#判断指定进程是否存在
result=`ps -ef | grep -w dbjob | grep -v grep | wc -l`
if [ $result -le 0 ]; then
    #不存在, 重启
	nohup java -Xms512m -Xmx1024m -jar /home/project/dbjob.jar &
else    
    #存在,判断状态
    #取进程状态,用来判断是否僵死
	val=`ps -aux | grep dbjob | grep -v grep | awk '{print $8}'`
	if [ "$val" == "Z" ];then
		# 取进程ID,用来kill掉进程
		pid = `ps -aux | grep dbjob | grep -v grep | awk '{print $2}'`
		kill -9 $pid
	fi
fi
  • 9
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值