-
需求和使用场景
后台服务程序如果遇到异常情况,可能会退出,导致后面的业务不可用。
当然异常情况便奔溃,肯定我们程序不健壮,需要我们修复bug并升级。 但为了保持业务不中断,我们需要一个异常拉起程序。 -
主要命令
- ps -ef #查看进程
- grep #过滤
- wc -l #统计
以进程DemoApp为例
ps -ef|grep DemoApp | grep -v "grep" |wc -l
- 编写shell脚本
脚本名字 AppMonitor.sh
后台程序 /usr/local/bin/DemoApp
#!/bin/bash
APP="DemoApp"
APP_DAEMON="AppMonitor.sh"
APP_PATH="/usr/local/bin/"
cd $APP_PATH
if [ $(ps -ef|grep "$APP_NAME"|grep -v "grep"|grep -v "$APP_DAEMON_NAME"|wc -l) -eq '0' ]
then
cd $APP_PATH
./DemoApp
else
echo "APP is running..."
- 加入定时任务
每分钟执行下定时任务(时间间隔自己定义)
echo "*/1 * * * * /usr/local/bin/AppMonitor.sh " >> /var/spool/cron/root