如何在執行另一項 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 fehkill即可feh。無需追蹤 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進程。

相關內容