suprevisord:如何在PROCESS_STATE_FATAL上停止supervisord

时间:2015-07-07 14:23:28

标签: supervisord

我使用supervisord管理docker容器中的多个进程。 但是,一个流程始终是' master',其他流程是监控和报告流程。 如果主进程在startretries之后无法启动,我想要做的就是杀死supervisord。

我尝试做的是使用eventlistener来终止进程:

[eventlistener:master]
events=PROCESS_STATE_FAIL
command=supervisorctl stop all

但我不认为事件子系统是如此复​​杂。我想我需要实际编写一个事件监听器来处理事件。 那是对的吗?如果其中一个进程踢了,有没有更简单的方法来杀死整个supervisord?

由于

2 个答案:

答案 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容器,如果对错误进行简单直接的关闭,它将成为一个杀手锏。当进程死亡时,容器应该停机。