1

В конфе Supervisord файлов вы можете указать AUTORESTART определенной программы с:Как сохранить Supervisord безоговорочно?

autorestart=true 

Но есть эквивалент для [Supervisord] сам по себе? Каков рекомендуемый способ убедиться, что Supervisord продолжает работать безоговорочно, особенно если процесс Supervisord убит.

Спасибо!

ответ

3

На самом деле ваш вопрос является конкретным применением знаменитого «Quis custodiet ipsos custodes»? то есть «Кто будет охранять охранников?».

В современной системе Linux центральной точкой охраны является init процесс (процесс номер 1). Если init умирает, ядро ​​Linux сразу же впадает в панику, и, следовательно, вам нужно пойти в ваш центр обработки данных (я имею в виду поехать) и нажать reset. Там вы много альтернативных реализаций init, here является одним из тех «таблицы сравнения» :)

Точный ответ, как настроить конкретный init реализации зависит от того, что init версия используется в этой системе. Для примера systemd имеет свой собственный механизм для перезапуска конфигурирования службы после их смерти (директивы Restart=, RestartSec=, WatchdogSec= и т.д. в соответствующем unit-file. Другие инициализации реализаций, как Ubuntu Upstart также имеет свои аналоги (respawn directive в файле конфигурации сервиса). Даже старый добрый SysV INIT имеет respawn вариант для обслуживания линии в /etc/inittab, но обычно услуги на уровне пользователя, не запускаются непосредственно inittab, только виртуальные менеджеры консоли (getty, mgetty и т.д.)

+0

Спасибо. Так что мы на Ubuntu, и мы реализовали Init .d, и кажется, что когда мы убиваем процесс супервизора, он не возвращается снова. Любая идея, каковы некоторые общие причины init.d, не сохраняющие живых демонов zed процессы? – chinnychinchin