linux下通過指令碼監控程式執行
阿新 • • 發佈:2019-02-12
shanzhizi大神的,寫的很實用,謝謝大神。
應用程式執行過程中,任何人都無法保證它永遠不死定,因此自動重啟就十分必要。以下是自動重啟的shell指令碼實現方法,shell指令碼來自網路。
假定需要實現重啟的程式名為 test ,我們這裡通過判斷程序數目來判斷程式是否正常。
ps -ef | grep “
程式碼如下:
#!/bin/sh
#------------------------------------------------------------------------------
# 函式: CheckProcess
# 功能: 檢查一個程序是否存在
# 引數: $1 --- 要檢查的程序名稱
# 返回: 如果存在返回0, 否則返回1.
#------------------------------------------------------------------------------
CheckProcess()
{
# 檢查輸入的引數是否有效
if [ "$1" = "" ];
then
return 1
fi
#$PROCESS_NUM獲取指定程序名的數目,為1返回0,表示正常,不為1返回1,表示有錯誤,需要重新啟動
PROCESS_NUM=`ps -ef | grep "$1 " | grep -v "grep" | wc -l`
if [ $PROCESS_NUM -eq 1 ];
then
return 0
else
return 1
fi
}
# 檢查test例項是否已經存在
while [ 1 ] ; do
CheckProcess "test"
CheckQQ_RET=$?
if [ $CheckQQ_RET -eq 1 ];
then
# 殺死所有test程序,可換任意你需要執行的操作
killall -9 test
exec ./test &
fi
sleep 1
done