如果workerman的进程一旦挂掉。那么后果是非常严重的一件事情。有没有做到一键值守呢。
#创建workerman.sh文件
#!/bin/bash
# author: 明天见
# desc: 监控workerman主进程
count=`ps -ef |grep 'WorkerMan'| grep -v 'grep' | grep 'master' | wc -l`
#判断线程是否启动
if [ $count -lt 1 ]; then
# 如果线程没有启动就让线程进行重启下
cd /www/wwwroot/XXXXX/workerman/
nohup php start.php restart &>> workerman.log 2>&1
echo "restart";
echo $(date +%Y-%m-%d %H:%M:%S) &>>workerman.log
#追加写入日志
fi
然后在把 ./workerman.sh 放到后台进行1秒检查一次 断掉就自动重启
ps -ef |grep 'WorkerMan'
我们在继续把上面的脚本进行优化下 改为由shell进行文件监控
#!/bin/bash
# author: 明天见
# desc: 监控workerman主进程
while true
do
count=`ps -ef |grep 'WorkerMan'| grep -v 'grep' | grep 'master' | wc -l`
#判断线程是否启动
if [ $count -lt 1 ]; then
# 如果线程没有启动就让线程进行重启下
cd /www/wwwroot/XXXX/workerman/
nohup php start.php restart &>> workerman.log 2>&1
echo "restart";
echo $(date +%Y-%m-%d_%H:%M:%S) &>>workerman.log
#追加写入日志
fi
sleep 1s
done