Linux

保持應用程序執行的看門狗腳本

  • April 5, 2018

我目前在我的 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) - 保持簡單

引用自:https://unix.stackexchange.com/questions/55318