Как перезапустить python скрипт внутри bash скрипта каждые x часов? - PullRequest
0 голосов
/ 14 февраля 2020


У меня довольно простой вопрос о запуске и перезапуске скриптов python внутри скрипта bash. Я надеюсь, что это не дубликат, но я не нашел похожего вопроса.
Я использую сценарий bash, который запускает пару сценариев python каждый раз, когда я создаю контейнер docker, но он должен быть одинаковым на всех компьютерах на основе linux. Это просто как:

python3 /mnt/device/script.py &
Теперь скрипт продолжит работу и будет измерять яркость, пока контейнер не остановится. Теперь я выяснил, что есть некоторые проблемы с библиотекой сенсоров, которые ярко обсуждаются на github и до сих пор не решены, что приводит к остановке скрипта каждые пару часов. Для меня было бы достаточно иметь какую-то команду, которая перезапускает мой скрипт, который выполняется в фоновом режиме каждые x часов, чтобы избежать этой ошибки.
Итак, что я ищу, это какая-то команда, которая будет похожа на следующую:

python3 for hour=1 /mnt/device/script.py restart &

Заранее спасибо!

1 Ответ

5 голосов
/ 14 февраля 2020

Вы можете использовать команду Bash timeout, чтобы отправить сигнал об уничтожении сценария Python.

restart=""
while true; do
    timeout 3600 python3 /mnt/device/script.py $restart
    restart="restart"
done &

Я полагаю, вы не действительно нужно, чтобы это работало в фоновом режиме (так что, возможно, уберите &) и что вы буквально хотите, чтобы restart передавался в качестве аргумента после первого раза.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...