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

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

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

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

我這裏只是簡單的設置每分鐘調用一個shell腳本monitor.sh。這裏能夠配置的更強大,你們能夠去搜索一下crontab的教程,網上有不少這類的教程。
這裏須要注意的是,不少教程配置command的時候直接使用/root/monitor.sh,我設置的時候發現這樣配置不會執行shell腳本,前面加上sh後就能執行了。
而後咱們開始寫monitor.sh這個shell腳本。web

#! /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

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

這裏其實也能夠擴展一下,好比對日誌文件的處理以及重啓時間等的記錄等等。服務器

到這裏就OK了,能夠殺掉進程,自行測試一下啦~測試

 

若是使用ui

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

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

 

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

相關文章
相關標籤/搜索