進程監護實現

腳本實現進程監護

通過PS命令查詢進程,通過判斷進程的運行狀態從而繼續後續操作:對指定進程在非正常運行情況下進行重啓操作

#!/bin/sh
# 函數: CheckProcess
CheckProcess()
{
	#$PROCESS_NUM獲取指定進程名的數目
	PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l`
	if [ $PROCESS_NUM -eq 0 ]; then
		return 1
	else
#		echo "$PROCESS_NUM"
		return 0
	fi
}
# ---------------------------------程序開始---------------------------------------
# 檢查程序是否已經存在
while [ 1 ] ;do
	sleep 10
	
	# 監控test進程
	CheckProcess "test"
	if [ $? -eq 1 ]; then
		echo "restart test process"
		killall -9 test
		exec /mnt/platform/bin/test > /dev/null &
	fi	
done
Note:該方法只適用於監護進程名比較特殊的進程,對於進程名可能爲其他進程子項的進程並不適用;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章