Как завершить одно задание 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 fehto kill feh. Не нужно отслеживать PID или что-то еще. pkillиспользуется для поиска и завершения процессов с заданным именем. Предлагаю прочитать manpagefor pkillи pgrep.

решение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процесс.

Связанный контент