动态

详情 返回 返回

linux定時任務檢查進程是否存在 不存在就重啓 jar nginx redis等通用 - 动态 详情

/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

Add a new 评论

Some HTML is okay.