Сторожевой таймер для конкретного процесса Python
Я работаю над Ubuntu 16.04, и у меня есть процесс запуска Python в фоновом режиме
python myFunction.py
Время от времени, myFunction
процесс убит по неизвестной причине, однако я хочу перезапустить его автоматически. У меня есть несколько процессов Python, работающих в фоновом режиме, и я не знаю, какой из них работает myFunctions.py
(например, используя pgrep
команда).
Является ли это возможным? Могу ли я сделать скрипт bash или python для перезапуска команды python myFunction.py
всякий раз, когда запущенный процесс python убивается?
1 ответ
Вы можете посмотреть на http://supervisord.org/, который (из собственной документации):
клиент-серверная система, позволяющая пользователям отслеживать и контролировать ряд процессов в UNIX-подобных операционных системах
Supervisord будет контролировать ваш сценарий. Если происходит сбой, он перезапустит его снова. Если ваша малина перезагружается, она автоматически запускает скрипты после загрузки.
Он работает на основе файла конфигурации, отформатированного следующим образом (больше информации в документации):
[program:myFunction]
command=/path_to_script/myFunction.py
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/myFunction.log
stderr_logfile=/var/log/myFunction.error.log
directory=/path_to_script
Я надеюсь, что это поможет вам