Supervisord: Don’t start a program before another one is running

supervisord

I am using supervisor on Ubuntu with several programs to supervise. Is it possible to configure supervisor so it doesn't start a program before another specific program has successfully started?

I.e. I want to run Kafka only after Zookeeper has started.

Best Answer

You can't do this, as far as I know. See this issue: https://github.com/Supervisor/supervisor/issues/122

One commenter there suggests having all your programs as autostart = false, except just one, that has the responsibility for bringing all the others up (using supervisorctl, or the API, I guess) in the right order.