Linux
保持應用程序執行的看門狗腳本
我目前在我的 linux 伺服器上使用一個名為 MxEasy 的應用程序來顯示來自幾個 IP 攝影機的影片。該軟體有相當多的錯誤,偶爾會崩潰。我編寫了一個腳本來檢查應用程序是否正在執行,如果沒有……它會啟動應用程序。
我已經嘗試將此行添加到我的 crontab 以讓它執行腳本。它正在執行腳本,但沒有啟動 MxEasy。有什麼我在看的嗎?
0,15,30,45,50 * * * * root export DISPLAY=:0 && /etc/cron.hourly/MxEasyCheck.sh
BTW Ubuntu Server 12.04 是作業系統
這是 MxEasyCheck.sh
MXEASY=$(ps -A | grep -w MxEasy) if ! [ -n "$MXEASY" ] ; then /home/emuser/bin/MxEasy/startMxEasy.sh & exit fi
這是我的 crontab
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) 0 * * * * root /etc/cron.hourly/rsynccheck.sh 0,15,30,45,50 * * * * root export DISPLAY=:0 && /etc/cron.hourly/MxEasyCheck.sh #
與其每隔幾分鐘檢查一次,不如編寫一個循環,在程序異常終止時重新啟動程序。但是不要自己動手,有很多現有的程序可以做到這一點。請參閱確保程序始終在執行
考慮讓您的應用程序由 init 生成…參見 init(8) - 保持簡單