我目前在我的 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