/data/restart.sh腳本內容如下 注意替換進程名稱 日誌路徑及需執行的命令
#!/bin/sh
#author by JoshYoby 2019-11-26
appname=test.jar #如檢測nginx 則appname=nginx 下面命令替換為nginx啓動命令
checkrun=`ps -C $appname --no-header |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