別の cron ジョブを実行する前に、1 つの cron ジョブを強制終了するにはどうすればよいですか?

別の cron ジョブを実行する前に、1 つの cron ジョブを強制終了するにはどうすればよいですか?

私のデジタルフォトフレームにはcrontab -u pi -e2 つのプロセスがあります。

最初の人が電話する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 などを追跡する必要はありません。 は、指定された名前のプロセスを検索して kill するために使用されます。とをpkill読むことをお勧めします。manpagepkillpgrep

答え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

関連情報