Назад | Перейти на главную страницу

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

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

Т.е. Я хочу запустить Kafka только после запуска Zookeeper.

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

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

Я не уверен, что руководитель может гарантировать это, но попробуйте указать Zookeeper's приоритет ниже, чем у Кафки, примерно так:

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

[program:Kafka]
command=yy
priority=999
autostart = true
autorestart = true