如何强制supervisord在BACKOFF状态下停止进程

时间:2014-07-02 09:53:42

标签: supervisord

使用supervisord启动进程时,它处于“STARTING”状态,如果遇到问题,如果autorestart设置为true,则进入“BACKOFF”状态。

我不想等待尝试“startretries”,我想使用supervisorctl手动停止重启过程。我发现这样做的唯一方法是停止整个supervisord服务并重新启动它(如果没有自动启动,每个进程都处于“STOPPED”状态。)

有没有更好的方法(从“BACKOFF”状态强制“停止”状态),因为我在supervisord中管理其他进程,我不想停止?

如果我尝试用

停止它
supervisorctl stop process

我得到了

FAILED: attempted to kill process with sig SIGTERM but it wasn't running

如果我尝试用

启动它
supervisorctl start process

我得到了

process: ERROR (already started)

当然我可以禁用autorestart,但它可能很有用,解决方法是限制startretries,有更好的解决方案吗?

2 个答案:

答案 0 :(得分:4)

嘿,这对你有帮助:

  

当自动重启过程处于BACKOFF状态时,它将是   由supervisord自动重启。它会在之间切换    STARTING BACKOFF 状态,直到明显由于 startretries 的数量已超出而无法启动   最大值,此时它将转换为FATAL状态。   每次开始重试都会花费更多的时间。

因此您无需手动停止BACKOFF过程。如果您不想等待太长时间,最好为初始设置设置一个小数字。

在此处查看更多信息:http://supervisord.org/subprocess.html

GOOD LCUKY

答案 1 :(得分:-4)

使用以下命令强制主管停止处于BACKOFF状态的进程。

supervisorctl stop <gname>:*