我想創建一個腳本來持續檢查行程狀態是否運行。如果行程不會運行,腳本應該捕獲它并在幾秒鐘內重新啟動它。如何在系統上連續運行此腳本以及如何通過 ---> 更改腳本 要點:它應該作為引數:嘗試重新啟動服務之間等待 1 秒,嘗試次數 2 和 3 - 生成事件日志。Nginx 是該程序的一個示例。它可以更換。
#!/bin/bash
SERVICE="nginx"
if pgrep -x "$SERVICE" >/dev/null
then
echo "$SERVICE is running"
else
echo "$SERVICE stopped"
# start nginx if stopped
echo "$SERVICE starting"
systemctl start $SERVICE
fi
uj5u.com熱心網友回復:
你可以嘗試這樣的事情:
#!/bin/bash
service="nginx"
seconds=2
retries=3
until (( retries-- == 0 ))
do
property=$(systemctl show --property MainPID "$service")
if [[ $property == MainPID=0 ]]
then
echo "$service stopped"
echo "$service starting"
systemctl start "$service" >& /dev/null
else
echo "$service is running"
exit
fi
sleep "$seconds"
done
echo "$service is broken"
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/410223.html
標籤:
上一篇:使用shell腳本決議文本檔案
下一篇:如何輸出最新版本的pip包?
