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