linux服務器掛掉自動重啟腳本(轉)


實現原理主要是使用linux提供的crontab機制,定時查詢服務器進程是否存在,如果宕機則執行我們預設的重啟腳本。

首先我們要向crontab加入一個新任務

sudo crontab -e #進入編輯狀態,選用vi編輯。
 
*/1 * * * * sh /root/monitor.sh  #添加每分鍾檢測

我這里只是簡單的設置每分鍾調用一個shell腳本monitor.sh。這里可以配置的更強大,大家可以去搜索一下crontab的教程,網上有很多這類的教程。
這里需要注意的是,很多教程配置command的時候直接使用/root/monitor.sh,我設置的時候發現這樣配置不會執行shell腳本,前面加上sh后就能執行了。
然后我們開始寫monitor.sh這個shell腳本。

#! /bin/sh    
    
proc_name="run_cloudweb.py"        #進程名  
    
proc_num()                      #查詢進程數量  
{  
    num=$(ps -ef | grep $proc_name | grep -v grep | wc -l)
    return $num  
}  
  
proc_num    
number=$?                       #獲取進程數量  
if [ $number -eq 0 ]            #如果進程數量為0  
then                            #重新啟動服務器,或者擴展其它內容。  
    cd /usr/shineonStuido/cloudweb/ 
    sudo nohup python run_cloudweb.py &  
fi

這個腳本,只是簡單的檢測了進程是否存在,不存在就自動重啟服務器。

這里其實也可以擴展一下,比如對日志文件的處理以及重啟時間等的記錄等等。

到這里就OK了,可以殺掉進程,自行測試一下啦~

 

如果使用

num=`ps -ef | grep $proc_name | grep -v grep | wc -l`

則num為字符串,return $num時會出錯提示return必須為數字

 

轉自:https://blog.csdn.net/cocos2dGirl/article/details/80492843


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM