Две цели:
1) Убедитесь, что фоновые демоны, такие как webserver / rabbitmq, работают все время. В случае сбоя они автоматически перезапускаются и т. Д. Для этого я использую monit с такой конфигурацией, как:
set httpd port PORTNUM and
use address localhost
allow localhost
check process WEBSERVER with pidfile /var/run/WEBSERVER.pid
start program = "/etc/init.d/WEBSERVER start"
stop program = "/etc/init.d/WEBSERVER stop"
2) Запустить n процессов Python одновременно. Для их запуска используется supervisord с такой конфигурацией, как:
[program:name]
command= somecommand
numprocs=3
process_name=%(process_num)s
Вопросы:
1. Могут ли возникнуть проблемы с таким подходом? Или это вообще плохая идея?
2. Есть ли способ избежать этой ситуации?
Супервизору AFAIK нужно все, чтобы работать на переднем плане, а Monit не может запускать несколько номеров сценария.
Это будет 'dockerized' (в случае, если это имеет значение).
Спасибо
Я не предвижу никаких проблем с этим, даже если руководитель управляет другим пулом инструментов, чем monit (он же, они не перекрываются)
Мониторинг руководитель с участием Монит может быть хорошей идеей убедиться, что он всегда включен.
Как вы утверждаете, monit не может обрабатывать несколько тем же обработать ванильным способом.
Объявление нескольких мониторов служба и / или использование пользовательских скриптов.