此脚本用户守护监控进程的执行情况,因为有的时候,我们用各类开发语言做的守护进程可能会因为一些特殊情况被退出,所以此脚本就是为了重启这些进程
代码:
#!/bin/bash
EMAIL='9958_pw@163.com'
start()
{
c=`ps w -C php|grep $1|wc -l`
if [ $c -lt 1 ]
then
if [ -f "$1" ];then
/usr/local/php/bin/php $1 > /dev/null &
else
`echo 'no such file '$1 | mail -s 'process check error' $EMAIL`
fi
fi
}
BASE_PATH=`dirname $0`"/"
cd $BASE_PATH
start del_old_sessions.php
start send_sms.php
start send_mail.php
只需要在crontab里面添加此shell,一分钟一次即可
说明:
此脚本自动获取脚本当前所在的目录,默认此脚本和其所监控的脚本在同一级目录,这样他执行ps命令,监控进程是否存在,不存在则重启进程。当然,我们也可以使用nohup来执行。