歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux服務

關於linux服務器進程監控及自動重啟的方法介紹

  本周開始,新手游進行刪檔封測階段,前兩天表現還好,今天更新後出現幾次宕機行為,比較影響玩家的測試和體驗,我們的服務器管理系統尚未完善,為了晚上能夠預防宕機造成損失,先用一種簡單的方案臨時頂替一下。

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

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

  # 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="WorldFrame_d"       

   #進程名  proc_num()                    

   #查詢進程數

  {   

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

  return $num}proc_num  number=$?                      

  #獲取進程數量

  if [ $number -eq 0 ]           

  #如果進程數量為0then                           

   #重新啟動服務器,或者擴展其它內容。   

  cd /longwen/server/sbin/linux; ./WorldFrame_d -c 1fi

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

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

  需要注意的是在windows編輯sh文件要注意格式問題(CR/LR),否則容易出現sh執行錯誤的BUG。

  好了,進行測試吧,我這裡測試OK,記錄一下,希望能幫到其它遇到類似問題的同學。謝謝閱讀,希望能幫到大家,請繼續關注腳本之家,我們會努力分享更多優秀的文章。

Copyright © Linux教程網 All Rights Reserved