I'm currently using Supervisor inside my Docker images to start and manage my services and I would like to configure Supervisor to exit if at least one of these services entered FATAL state.
Doing that, I want to avoid to have Docker containers in running state when nothing except Supervisor has succeeded to start.
Thanks!
As mhsmith mentioned, an event listener is the best way to achieve this. You could use the following listener (
ADD
this as e.g./usr/local/bin/exit-event-listener
):And then, register it with supervisor:
You can do this with a Supervisor event listener. Subscribe it to the event
PROCESS_STATE_FATAL
, and respond to the event by sending a SIGTERM to supervisord, which you are presumably running as PID 1 within the container.