目录
1.需求描述
主机环境是Linux,发布的应用希望满足以下几个条件
(1) 主机断电、重启时自动重启应用
(2) 分钟级监控应用的运行状况,如果发现应用已经不存在,则自动启动进程。
2.监控脚本
#!/bin/sh
# manage.py是进程名称,修改为自己的即可
v_num=`ps -ef|grep "manage.py"|grep -v more|grep -v tail|grep -v grep |wc -l`
if [ $v_num -lt 2 ]
then
date
echo "进程不存在"
ps -ef|grep "manage.py"|grep -v more|grep -v tail|grep -v grep |awk '{ print $2 }'|xargs kill -9
# 应用启动的根目录
cd /opt/LZY/web/yisheng/
# 应用启动的命令
python manage.py runserver 127.0.0.1:8006
sleep 20
v_num=`ps -ef|grep "manage.py"|grep -v more|grep -v tail|grep -v grep |wc -l`
if [ $v_num -eq 2 ]
then
date
echo "已恢复正常"
fi
else
date
echo "程序正常运行,不需要重启!"
fi
自己使用的时候,注意下进程名称以及进行启动的命令,修改为自己的即可。保存上述的脚本到mon.sh文件中。
注:
如果脚本文件时windows电脑上编辑好,然后直接把文件拷贝到linux主机上的话,是会有问题的,字符串的编码有出错,需要特殊处理下。最好是直接把内容复制,然后再linux主机上,使用vi命令新增文件的方式。如果一定要拷贝文件的话,参考这个链接的解决方法。
3.Crontab定时任务
添加定时任务到Crontab中
#查看当前的crontab列表
crontab -l
#编辑插入crontab
crontab -e
进入编辑状态后,插入如下crontab
0-59 * * * * /opt/LZY/web/yisheng/mon.sh >>/opt/LZY/web/yisheng/mon.log
分 时 日 月 星期 监控脚本>>输出日志