Всегда использую
supervisord. Просто отличная штука, ещё и на питоне написанная. Гибкие конфиги, перезапуск при падении. и другие плюшки.
UPD
Как использовать:
1) Ставишь его общесистемно sudo apt-get install supervisor (можно и через пип поставить, но настраивать надо побольше будет).
2) Надо настроить сам супервизор: откуда он будет брать конфиги, какие права нужны и т.д. Если у тебя убунта, то настройки самого супервизора будут в порядке. Они хранятся в /etc/supervisor/supervisord.conf. В этом файле прописано, что настройки для демонов будут читаться из папки /etc/supervisor/conf.d
Если у тебя не убунта, или ты ставил супервизор через пип, то
вот стандартный конфиг. Настройки там очевидные
3) Когда супервизор поставлен и настроен, запускай его:
sudo service supervisor start
или
sudo supervisord
4) Теперь надо сделать конфиг для запуска твоего скрипта. Создаёшь файл в папке с конфигами такого содержания:
[program:ОТОБРАЖАЕМОЕ_ИМЯ]
command = КОМАНДА_ДЛЯ_ЗАПУСКА (например python ИМЯ_СКРИПТА)
autorestart = true # автостарт при запуске супервизора
stderr_logfile = /var/log/ИМЯ_ЛОГФАЙЛА.err.log # тут перенаправляем stderr в файл
stdout_logfile = /dev/null # тут глушим весь вывод со stdout
Всё! Управлять твоими демонами можно через команду
supervisorctl. Сперва надо перепрочитать конфиг, потом стартануть приложение:
supervisorctl reread
supervisorctl ОТОБРАЖАЕМОЕ_ИМЯ start
Можно опустить ОТОБРАЖАЕМОЕ_ИМЯ, тогда команда будет применена ко всем.
Также ты можешь запустить CLI, если введёшь
supervisorctl без параметров. Там по табу смотри команды.
Читай
этот раздел, для понимания конфигов запускаемых приложений.