Linux下程序守護腳本的應用實例


作用

服務器上運行的程序我們希望一直運行,長時間提供服務,但是在程序不穩定導致崩潰、系統重啟的情況下不能自啟動,所以需要提供一個守護程序能在異常的情況下重新啟動要守護的程序已達到目的。

思路

1.使用一個while循環一直檢測我們要守護程序進程在不在,例如通過 pgrep 進程名 判斷該進程是否存在。

2.當需要守護的進程不存在時,就去要守護的程序目錄下去啟動該程序。

3.在守護腳本中還可以統計程序重啟的次數,即腳本啟動一次,就記錄一次重啟情況,寫入本地文件方便查看統計,這也是一個小技巧

實例

#! /bin/bash
logpath=/root/Log

while [ 1 ]
do
        if [ -f /root/UserApp/services/analysis_service/VAServer/startup.sh ]
        then
                procID=`pgrep VAServer`
                if [ "" == "$procID" ]
                then
                        cd /  #防止程序路徑不存在導致切換路徑失敗,遞歸調用當前或者未知路徑下的同名腳本
                        cd /root/UserApp/services/analysis_service/VAServer
                        chmod +x startup.sh
                        echo "restart VAServer at time:`date`" >> ${logpath}/restart_VAServer.log
                        ./startup.sh 1>/dev/null 2>/dev/null
                fi
        fi
        sleep 10
done &

  上面是守護腳本AnalysDaemon.sh的代碼實現

將該腳本放在系統自啟動文件中,這樣系統重啟后腳本也能夠正常啟動要守護的程序。

#放在文件/etc/rc.local最后
cd /root/UserApp/Daemon
chmod +x AnalysDaemon.sh
./AnalysDaemon.sh

 

 


免責聲明!

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



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