运维相关 · 2012年1月16日 0

监控php后台脚本的shell

因为项目需要有脚本不停的处理队列信息,所以需要监控脚本是否停止了,如果停止则需要再次启动。于是写了个脚本

#! /bin/bash
cd /data/www/xs8.cn/app.xs8.cn/shell/ #脚本所在目录
F=(CHANGE_USER_TICKET.php CHANGE_USER_LEVEL.php USER_COST.php) #需要监控的脚本文件名
L=(log_ticket log_level log_cost) #脚本对应的日志文件
for((i=0;i<${#F[@]};i++));do
  n=`ps aux|grep ${F[$i]}|grep -v grep|wc -l`;
  if(($n < 1));then
    nohup /usr/bin/php ${F[$i]} >> ${L[$i]} 2>&1 &
  fi
done;

然后将其写入crontab,每10分钟执行

*/10 * * * * /bin/bash /opt/sbin/check_shell.sh > /dev/null 2>&1