shell查看进程是否运行,不存在进行重启

最近换下宝塔的环境,转战kangle和amh,主要是宝塔被大佬爆出后门。换到其他面板后,mysql莫名其妙会被挤掉,所以写一个定时 监控的bash守护脚本,以便掉线进行重启。

图片[1]-shell查看进程是否运行,不存在进行重启-不念博客
shell

bash代码如下

#!/bin/bash
result=`ps -ef|grep -w mysql|grep -v grep|wc -l`
if [ $result -ge 1 ];then
        echo "app start sucessed"
else
        /etc/init.d/mysql restart
        echo "Restarting current program"
fi

重命名并保存为mysql.sh,这个名字也可以自定义

函数解析

检查程序是否运行

ps -ef|grep -w mysql       搜索mysql进程名称
grep -v grep               过滤掉 grep 进程
wc -l                      显示结果行数

if判断的类型

result返回现在有多少指定进程在进程,不存在则进行下一步操作

-eq:等于
-ne:不等于
-le:小于等于
-ge:大于等于
-lt:小于
-gt:大于

crontab守护

在ssh界面进入crontab界面来设置定时任务

crontab -e
或
vim /etc/crontab

这里我设置5分钟的定时定时任务

*/5 * * * * bash /root/mysql.sh

这样就搞定了。

© 版权声明
THE END