linux下通過(guò)腳本實(shí)現(xiàn)自動(dòng)重啟程序
自動(dòng)重啟故障相信大家都遇到過(guò),原因也有很多,跟系統(tǒng),硬件或者外界因素都有關(guān),但是在Linux中可沒(méi)有那么簡(jiǎn)單。這里集中討論linux實(shí)現(xiàn)自動(dòng)重啟程序的方法。下面一起看看!
自動(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腳本,可以省去很多麻煩,
#!/bin/cshlimit coredumpsize 102400
./check &
補(bǔ)充:電腦總是自動(dòng)重啟怎么辦
1、右擊“我的電腦”,選擇“屬性”項(xiàng)。
2、在打開(kāi)的系統(tǒng)屬性窗口中選擇“高級(jí)系統(tǒng)設(shè)置”項(xiàng)進(jìn)入。
3、在打開(kāi)的“系統(tǒng)屬性”窗口中,切換至“高級(jí)”選擇卡,然后點(diǎn)擊“系統(tǒng)和故障恢復(fù) 設(shè)置”按鈕。
4、在打開(kāi)的窗口中取消勾選“自動(dòng)重啟啟動(dòng)”項(xiàng)并按確認(rèn)即可。
5、當(dāng)電腦在使用的過(guò)程中產(chǎn)生藍(lán)屏?xí)r,我們就可以進(jìn)入“系統(tǒng)日志”管理器中查看產(chǎn)生系統(tǒng)失敗的根源啦。打開(kāi)“運(yùn)行”對(duì)話框,輸入命令“eventvwr.msc”即可查看日志信息,從中定位系統(tǒng)產(chǎn)生失敗的原因。
6、當(dāng)然,我們也可以通過(guò)禁用某些開(kāi)機(jī)項(xiàng)來(lái)嘗試修復(fù)系統(tǒng)。打開(kāi)“運(yùn)行”對(duì)話框,輸入命令“msconfig”進(jìn)入“系統(tǒng)配置實(shí)用程序”界面,勾選“常規(guī)”選項(xiàng)卡下的“診斷啟動(dòng)”選項(xiàng)。
7、還有一種修復(fù)計(jì)算機(jī)藍(lán)屏或重啟故障的方法,就是在電腦啟動(dòng)時(shí)按“F8”進(jìn)入系統(tǒng)故障菜單,從中選擇“安全模式”進(jìn)入或“最后一次正確的配置”項(xiàng)進(jìn)入系統(tǒng),將及有可能修復(fù)系統(tǒng)。
8、當(dāng)然,如果以上方法均不能解決問(wèn)題,那么建議您還是重新安裝一下系統(tǒng),畢竟安裝系統(tǒng)所耗費(fèi)的時(shí)間相對(duì)修復(fù)所用時(shí)間要少許多。一勞永逸之事才是王道。
相關(guān)閱讀:電腦自動(dòng)重啟方法
方法一:
1、打開(kāi)控制面板-管理工具-計(jì)劃任務(wù)程序
2、創(chuàng)建基本任務(wù),名稱欄目,輸入“定時(shí)重啟”,下一步;
3、在窗口里,有每天、每周、每月、一次各種選擇,這里小誠(chéng)選擇一次,這次執(zhí)行完就失效,您可以根據(jù)自己的情況進(jìn)行選擇哈,點(diǎn)擊下一步;
4、設(shè)置重啟的日期、時(shí)間點(diǎn),下一步;
5、選擇啟動(dòng)程序,下一步;
6、在打開(kāi)頁(yè)面里,點(diǎn)擊瀏覽,找到C;\Windows\System32\Shutdown.exe,點(diǎn)擊打開(kāi);
7、在添加參數(shù)欄目里輸入“-r”(重啟),進(jìn)行下一步
8、點(diǎn)擊完成,即可實(shí)現(xiàn)自動(dòng)重啟了
方法二:
網(wǎng)上搜索個(gè)自動(dòng)重啟關(guān)機(jī)類(lèi)軟件,這比較多,簡(jiǎn)單設(shè)置一下就可以了。
linux下通過(guò)腳本實(shí)現(xiàn)自動(dòng)重啟程序相關(guān)文章: