2

В 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 не работает, потому что я не знаю, когда происходит перезагрузка?

2 ответа2

1

Это сработало для меня до сих пор:

@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 .

1

В ваших скриптах ledslide.sh просто используйте pkill -9 feh чтобы убить feh . Не нужно отслеживать PID или что-то еще. pkill используется для поиска и уничтожения процессов с заданным именем. Я предлагаю прочитать manpage страницу для pkill и pgrep .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .