直接上代码
一
文件:process_guard.sh
#!/bin/bash
PRO_NAME=ssserver #进程名称 不合适就替换
LOG_PATH=ssserver_restart.log #log文件路径 不合适就替换
while true ; do
NUM=`ps aux | grep ${PRO_NAME} | grep -v grep |wc -l`
# echo $NUM
# 少于1,重启进程
if [ "${NUM}" -lt "1" ];then
#时间戳
timestamp=`date "+%s"`
#格式化后的时间
timestring=`date "+%Y-%m-%d %H:%M:%S"`
status=`/etc/init.d/shadowsocks status` #检查状态
echo "$timestring : $status" >> $LOG_PATH #输出状态到log文件,记录重启次数 不合适就替换
/etc/init.d/shadowsocks restart #启动命令 不合适就替换
sleep 10 #重启休眠 +10秒
fi
sleep 5 #休眠 5秒
done
exit 0
二. 启动方式 nohup ./process_guard.sh &
三
查看后台任务 jobs -l
关闭守护任务 kill [pid]
用这条也可以查看ps -aux | grep "process_guard.sh"
网友评论