如何在执行另一个 cron 作业之前终止一个 cron 作业?

如何在执行另一个 cron 作业之前终止一个 cron 作业?

crontab -u pi -e我的数码相框中我有两个过程。

第一个调用feh重新启动并开始幻灯片放映。

@reboot bash /home/pi/ledslide1.sh >> /home/pi/logs/slidelog 2&>1

然后其他实例应该在特定时间启动。

15 8 * * * bash /home/pi/ledslide2.sh >> /home/pi/logs/slidelog 2&>1
15 9 * * * bash /home/pi/ledslide3.sh >> /home/pi/logs/slidelog 2&>1
...

feh幻灯片正在重复播放。这样我必须先终止该进程,对吗?timeout不起作用,因为我不知道何时重新启动?

答案1

在您的 ledslide.sh 脚本中,只需使用pkill -9 fehkillfeh即可。无需跟踪 PID 或任何其他内容。pkill用于搜索并终止具有给定名称的进程。我建议阅读manpageforpkillpgrep

答案2

到目前为止这对我有用:

@reboot bash /home/pi/ledslide1.sh >> /home/pi/logs/slidelog 2&>1
15 8 * * * pkill -9 feh && bash /home/pi/ledslide2.sh >> /home/pi/logs/slidelog 2&>1

.sh文件调用feh并将其放入后台。pkill -9 [KEYWORD]关闭该feh进程。

相关内容