我使用supervisord管理docker容器中的多个进程。 但是,一个流程始终是' master',其他流程是监控和报告流程。 如果主进程在startretries之后无法启动,我想要做的就是杀死supervisord。
我尝试做的是使用eventlistener来终止进程:
[eventlistener:master]
events=PROCESS_STATE_FAIL
command=supervisorctl stop all
但我不认为事件子系统是如此复杂。我想我需要实际编写一个事件监听器来处理事件。 那是对的吗?如果其中一个进程踢了,有没有更简单的方法来杀死整个supervisord?
由于
答案 0 :(得分:0)
回答者: supervisord event listener
命令参数必须是事件处理程序,不能是随机命令。
答案 1 :(得分:0)
另一次尝试:
[eventlistener:quit_on_failure]
events=PROCESS_STATE_FATAL
command=sh -c 'echo "READY"; while read -r line; do echo "$line"; supervisorctl shutdown; done'
特别是对于docker容器,如果对错误进行简单直接的关闭,它将成为一个杀手锏。当进程死亡时,容器应该停机。