Я не использовал monit, но у supervisord есть некоторые существенные недостатки.
- Программы должны работать на переднем плане
Это означает, что вы не можете просто запустить /etc/init.d/apache2 start. В большинстве случаев вы можете просто написать один лайнер, например. "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND", но иногда вам нужен собственный скрипт-оболочка. Проблема со сценариями-оболочками заключается в том, что вы получаете два процесса, родительский и дочерний. Смотрите следующий недостаток ...
- супервизор не управляет дочерними процессами
Если ваша программа запускает дочерний процесс, supervisord не обнаружит это. Если родительский процесс умирает (или если он перезапускается с помощью supervisorctl), дочерние процессы продолжают работать, но будут «приняты» процессом инициализации и продолжат работу. Это может предотвратить будущие вызовы вашей программы или потреблять дополнительные ресурсы. Последние параметры конфигурации stopasgroup и killasgroup должны исправить это, но у меня они не сработали.
- В supervisord нет управления зависимостями — см. #122.
Недавно я установил squid с qlproxy. Сначала должен запуститься qlproxyd, иначе может произойти сбой squid. Несмотря на то, что обе программы управлялись с помощью supervisord, гарантировать это было невозможно. Мне нужно было написать стартовый скрипт для squid, который заставлял бы ждать процесс qlproxyd. Добавление сценария запуска привело к проблеме с потерянным процессом, описанной в недостатке 2.
- supervisord не позволяет вам контролировать задержку между попытками запуска
Иногда, когда процесс не запускается (или падает), это происходит потому, что он не может получить доступ к другому ресурсу, возможно, из-за нестабильности сети. Супервизор может быть настроен на перезапуск процесса несколько раз. Между перезапусками процесс переходит в состояние «BACKOFF», но отсутствует документация или контроль продолжительности задержки.
В свою защиту супервайзер удовлетворяет наши потребности в 80% случаев. Конфигурация разумна, а документация довольно хороша.
person
cressie176
schedule
31.12.2014