/data/restart.sh脚本内容如下 注意替换进程名称 日志路径及需执行的命令

#!/bin/sh
#author by JoshYoby 2019-11-26

appname=test.jar #如检测nginx 则appname=nginx 下面命令替换为nginx启动命令
checkrun=`ps -ef | grep $appname | grep -v "grep" | wc -l` #返回 ps -ef 出来的所有字符串中含有 $appname 的进程个数

#echo $checkrun
if [ 0 = $checkrun ]; then
    #进程不存在
    time2=$(date "+%Y-%m-%d %H:%M:%S")
    echo "$appname 服务宕机,正在重新启动宕机时间为:"$time2>>/data/$appname.log
    nohup java -jar /data/test.jar > /dev/null 2>&1 &
    echo "$appname 重新启动成功!!!">>/data/$appname.log
else
    #进程存在
    echo "$appname 服务运行正常...持续监控中">>/data/$appname.log
fi
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "==================>本轮监测完毕,当前时间为:"$time>>/data/$appname.log

给脚本添加执行权限
chmod +x /data/restart.sh
执行以下命令进入定时任务
crontab -e
添加以下内容 举例 每小时执行restart.sh脚本
* */1 * * * /data/restart.sh


鸣蜩IV
4 声望5 粉丝