使用 cron 作业启动程序

使用 cron 作业启动程序

一个视觉系统程序在PC上运行,我需要它始终运行并在最上面,但有时程序可能会出现问题并终止它。所以我需要一个脚本来检查程序是否没有运行并运行它。

我使用 cron 作业来执行任务,我编写了这个 cron 作业来运行脚本:

*/1 * * * * /home/masoud/Desktop/vision3/cron.sh

cron.sh 是:

cd "${0%/*}"
if pgrep -x "video" > /dev/null
then
    echo "running"
else
    /home/masoud/Desktop/vision3/video &
fi

cron.sh 正确执行作业,cron 作业运行脚本,但会短暂终止它。我可以看到我的网络摄像头 LED 亮起一秒钟。我究竟做错了什么?

答案1

Cron 作业并不真正适合管理桌面应用程序。您最好从循环 shell 脚本启动应用程序;最简单的

#!/bin/sh
cd /home/masoud/Desktop/vision3
while :; do ./vision; done

这样每当vision停止时,它就会再次启动。

当您确实想要停止该程序时,您可能需要计划一个“退出策略”。这会做:

#!/bin/sh
cd /home/masoud/Desktop/vision3
while [ ! -f no_vision ]; do ./vision; done

然后当你想停止程序时,

touch /home/masoud/Desktop/vision3/no_vision

并关闭它 — shell 脚本也会停止。

相关内容