用于保持应用程序运行的看门狗脚本

用于保持应用程序运行的看门狗脚本

我目前在我的 Linux 服务器上使用一个名为 MxEasy 的应用程序来显示来自几个 IP 摄像机的视频。该软件有很多错误,有时会崩溃。我编写了一个脚本来检查应用程序是否正在运行,如果没有运行......则启动该应用程序。

我尝试将此行添加到我的 crontab 中以使其运行脚本。它正在运行脚本,但未启动 MxEasy。有什么我没注意的吗?

0,15,30,45,50 * * * * root  export DISPLAY=:0 && /etc/cron.hourly/MxEasyCheck.sh 

顺便说一句 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 
#

答案1

不要每隔几分钟检查一次,而是编写一个循环,在程序异常终止时重新启动程序。但不要自己动手,有很多现有的程序可以做到这一点。看确保进程始终运行

答案2

考虑让你的应用程序由 init 生成...请参阅 init(8) - 让事情变得简单

答案3

使用下面的提及单元脚本来创建观察者博客。

bin=WatcherName echo "今天日期是=" date pid=pgrep -f javaProcess.jar

if [ $pid ] then echo $bin 已运行 PID: $pid else echo $bin 未运行。要运行: cd /home/Apps/path/ sh run.sh fi

相关内容