Мы настраиваем веб-приложение Python с использованием веб-сервера CherryPy на нескольких серверах Linux (оно находится за балансировщиком нагрузки nginx, отправляющим трафик на различные серверы). Мы находимся в процессе перехода с серверов Windows на серверы Linux, и мы будем работать на CentOS 6.5.
В Windows у нас был специальный диспетчер служб, который запускал и останавливал исполняемые файлы Python и перезапускал их, если они сильно вылетали или выходили по какой-либо причине.
Мой вопрос: какой хороший инструмент для того же в Linux? В идеале это было бы:
service our_app start
или /etc/init.d/our_app start
.Пока что я придумал различные возможности, от самых простых до более сложных:
Примечание. Я разработчик, у которого больше опыта работы с Windows, чем с Linux, и большим опытом разработки, чем с опытом работы с оператором / системным администратором. Просто говорю'. :-)
Я голосую за Монит, и есть много хорошие примеры конфигурации для этого.
Не думайте о Monit как о «больше, чем вам нужно». Он делает именно то, что написано, легким и надежным способом. Демон стабилен и не требует присмотра за детьми. Он запустит все необходимые вам процессы, PID, имя, соединение и проверки файлов. Поведение перезапуска и действия можно настроить. И есть приятный минимальный GUI / TUI для управления процессами.