supervisord: Don't start a program before another one is running

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.


I'm not sure supervisor can ensure that but try to specify Zookeeper's priority lower than Kafka's, something like this:

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

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