日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

linux下通過(guò)腳本實(shí)現(xiàn)自動(dòng)重啟程序

無(wú)論什么程序都不可能完美無(wú)缺,理論上,任何程序都有Core Dump的一天,正式運(yùn)營(yíng)的程序,尤其是服務(wù)器程序,一旦Core Dump,后果不堪設(shè)想,有過(guò)服務(wù)器開(kāi)發(fā)經(jīng)驗(yàn)的朋友,一定都經(jīng)歷過(guò)深夜美夢(mèng)中,被電話驚醒的慘痛經(jīng)歷,手忙腳亂把服務(wù)器重新啟動(dòng),第二天上班還要被老板一頓狠批 。所以,程序發(fā)生錯(cuò)誤時(shí)自動(dòng)重啟變得很重要 。這里集中討論linux實(shí)現(xiàn)自動(dòng)重啟程序的方法 。
linux下實(shí)現(xiàn)程序的自動(dòng)重啟有很多方法,這里我們介紹的是通過(guò)自己寫(xiě)腳本來(lái)實(shí)現(xiàn),
自動(dòng)重啟腳本
假定需要實(shí)現(xiàn)重啟的程序名為 test,我們這里通過(guò)判斷進(jìn)程數(shù)目來(lái)判斷程序是否正常 。
ps -ef | grep "$1" | grep -v "grep" | wc –l 是獲取$1(本例中為test)的進(jìn)程數(shù),腳本根據(jù)進(jìn)程數(shù)來(lái)決定下一步的操作 。通過(guò)一個(gè)死循環(huán),每隔1秒檢查一次系統(tǒng)中的指定程序的進(jìn)程數(shù) 。
代碼如下:
腳本check
#!/bin/sh
#-----------------------------------# 函數(shù): CheckProcess# 功能: 檢查一個(gè)進(jìn)程是否存在# 參數(shù): $1 --- 要檢查的進(jìn)程名稱# 返回: 如果存在返回0, 否則返回1.#---------------------------------------CheckProcess(){; # 檢查輸入的參數(shù)是否有效; if [ "$1" = "" ]then;return 1; fi;#$PROCESS_NUM獲取指定進(jìn)程名的數(shù)目,為1返回0,表示正常,不為1返回1,表示有錯(cuò)誤,需要重新啟動(dòng); PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l`if [ $PROCESS_NUM -eq 1 ]then;return 0; else;return 1; fi}
# 檢查test實(shí)例是否已經(jīng)存在while [ 1 ] ; do CheckProcess "test" CheckQQ_RET=$? if [ $CheckQQ_RET -eq 1 ]; then# 殺死所有test進(jìn)程,可換任意你需要執(zhí)行的操作; killall -9 test; exec ./test &fi sleep 1done

腳本start:
加入limit coredumpsize 102400,設(shè)置core file的大小,一旦程序Core Dump,有跡可尋 。在該腳本中后臺(tái)執(zhí)行check腳本,可以省去很多麻煩,
【linux下通過(guò)腳本實(shí)現(xiàn)自動(dòng)重啟程序】
#!/bin/cshlimit coredumpsize 102400
./check &

    推薦閱讀