У меня есть скрипт python, который должен работать 24/7 на сервере Linux. Какой разумный способ убедиться, что он работает?
Они предложили мне использовать cron и второй скрипт, который каким-то образом проверяет первый.
решение1
я используюсупервайзердля этого. Cron хорош для того, чтобы запустить его один раз и поддерживать его в рабочем состоянии (используйте @reboot), но вам нужно что-то менее простое, чтобы следить за всем.
Мои файлы конфигурации предназначены для каждого приложения (а в Ubuntu что-то вроде /etc/supervisord/conf.d/foo.conf)
Это мой файл скрипта обновления ttrss, но он может послужить хорошей отправной точкой.
command=php ./update_daemon2.php
directory=/var/www/lupinenet/ttrss
autostart=true
startretries=5
stderr_logfile=/var/log/supervisor/ttrss/ttrss.err.log
user=www-data
Построчно,
Первая строка — команда, которую я хочу запустить (поместите команду, которую вы хотите запустить, здесь).
Вторая — каталог, в котором она находится (что делает ее более аккуратной, в моем случае она запускается внутри корня моего веб-сервера).
Она автоматически запустится и попробует 5 раз.
Мне нужен вывод на случай, если что-то пойдет не так, поэтому я задаю файл для stderr_logfile — это необязательно, и задаю пользователя, от имени которого я хочу запустить задачу. Мне нужно logrotate, но я все время забываю ;p
Вы можете настроить это по вкусу в соответствии сдокументы