centos监控系统主进程,如果挂了,则自动重启
1,编辑脚本
vi /soft/webapp/monitor.sh
内容如下:
file_name="/data/log/monitor.log" # 日志文件
echo -n '.' >> $file_name
pid=0
proc_num() # 计算进程数
{
num=`ps -ef |grep "java -cp /soft/webapp/web/WEB-INF/" | grep -v grep | wc -l`
return $num
}
proc_id() # 进程号
{
pid=`ps -ef |grep "java -cp /soft/webapp/web/WEB-INF/" | grep -v grep | awk '{print $2}'`
}
proc_num
number=$?
if [ $number -eq 0 ] # 判断进程是否存在
then
/soft/webapp/web/WEB-INF/startDgj.sh
proc_id # 获取新进程号
echo -e -n ${pid},${proc_name} `date` " exe.\c" >> $file_name # 将新进程号和重启时间记录
fi
2,配置crontab
crontab -e 进入编辑,10分钟看一次
*/10 * * * * /soft/webapp/monitor.sh