supervisord: не запускайте программу до запуска другой

Я использую супервизор в Ubuntu с несколькими программами для надзора. Можно ли настроить супервизор таким образом, чтобы он не запускал программу до успешного запуска другой конкретной программы?

Т.е. я хочу запускать Кафку только после запуска Zookeeper.

2 ответа

Вы не можете сделать это, насколько я знаю. Смотрите эту проблему: https://github.com/Supervisor/supervisor/issues/122

Один комментатор предлагает использовать все ваши программы как autostart = false, кроме одной, которая отвечает за приведение всех остальных (используя supervisorctl или API, я полагаю) в правильном порядке.

Я не уверен, что супервизор может это гарантировать, но попытайтесь указать приоритет Zookeeper ниже, чем у Кафки, что-то вроде этого:

[program:Zookeeper]
command=xx
priority=1
autostart = true
autorestart = true

[program:Kafka]
command=yy
priority=999
autostart = true
autorestart = true
Другие вопросы по тегам