如果服务器程序经常崩溃,那么就需要一个监控脚本了。将下面的脚本放到crontab里面,每隔1分钟检测一次即可。
版本1:如果程序不存在
#! /bin/sh
#进程名
proc_name="ngrokd"
proc_path="/usr/local/ngrok/bin/ngrokd"
#查询进程数量
proc_num()
{
num=`ps -ef | grep $proc_path | grep -v grep | wc -l`
return $num
}
proc_num
#获取进程数量
number=$?
echo `date '+%Y-%m-%d %H:%M:%S'` $proc_name 进程数量 $number
#如果进程数量为0
if [ $number -eq 0 ]
then
#重新启动服务器
/etc/init.d/$proc_name start
echo `date '+%Y-%m-%d %H:%M:%S'` restart $proc_name success.
fi
版本2:校验网站访问失败
#! /bin/sh
#进程名
proc_name="ngrok"
#web地址
web_url="http://www.baidu.com"
#访问
web_http_code=$(curl -o /dev/null -s -w %{http_code} $web_url)
echo `date '+%Y-%m-%d %H:%M:%S'` $web_url 状态码 $web_http_code
#如果状态码502或者404
if [ $web_http_code -eq 502 -o $web_http_code -eq 404 ]
then
#重新启动服务器
/Users/hadong/Codes/dsdc-ngrok-client/dsdc-mac-ngrok -config=/Users/hadong/Codes/dsdc-ngrok-client/ngrok.cfg start myapi
echo `date '+%Y-%m-%d %H:%M:%S'` restart $proc_name success.
fi
crontab定时任务
#编辑
crontab -e
#每分钟执行一次
*/1 * * * * /root/script/ngrokd_monitor.sh > /dev/null 2>&1
#列出任务
crontab -l
评论 (0)