例如:程序名称为go-demo
创建监控主脚本 vi demo.sh
#!/bin/sh #程序所在目录 SERVICE_PATH="/data/www/abc" #启动程序名称 SERVICE_NAME="go-demo" #启动程序命令 START_CMD="./$SERVICE_NAME -config=demo.ini" #监控日志名称 LOG_FILE="restart.log" cd $SERVICE_PATH pwd while true do procnum=`ps -ef|grep $SERVICE_NAME|grep -v grep|wc -l` if [ $procnum -eq 0 ] then echo `date +%Y-%m-%d` `date +%H:%M:%S` $SERVICE_NAME >>$LOG_FILE ${START_CMD} fi sleep 1 done
创建启动脚本 vi start.sh
#!/bin/sh echo "Start Demo Service..." nohup ./demo.sh >/dev/null 2>&1 &
创建停止脚本 vi stop.sh
#!/bin/sh echo "Stop Demo Service..." killall -15 demo.sh && killall -15 go-demo
需要确定系统是否支持killall命令,CentOS下可使用 yum install psmisc 命令安装
最后赋予三个脚本文件可执行权限,运行start.sh或stop.sh即可
chmod +x demo.sh chmod +x start.sh chmod +x stop.sh