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

zen*_*eni 21 supervisord

当您使用supervisord启动进程时,它处于"STARTING"状态,然后如果遇到问题,如果autorestart设置为true,则进入"BACKOFF"状态.

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

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

如果我试图阻止它

supervisorctl stop process
Run Code Online (Sandbox Code Playgroud)

我明白了

FAILED: attempted to kill process with sig SIGTERM but it wasn't running
Run Code Online (Sandbox Code Playgroud)

如果我尝试启动它

supervisorctl start process
Run Code Online (Sandbox Code Playgroud)

我明白了

process: ERROR (already started)
Run Code Online (Sandbox Code Playgroud)

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

小智 2

嘿,这也许对你有帮助:

当自动重启进程处于BACKOFF状态时,它会被supervisord自动重启。它将在 STARTINGBACKOFF状态之间切换,直到明显无法启动,因为启动重试次数已超过最大值,此时它将转换为 FATAL 状态。每次启动重试将逐渐花费更多时间。

所以你不需要手动停止 BACKOFF 过程。如果不想等待太久,最好设置一点startretries的次数。

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

好LCUKY

  • 这确实没有解决问题——你只是告诉他他不需要做他要求的事情。“您不需要手动停止 BACKOFF 过程”。他询问如何从 BACKOFF 切换到 STOPPED 状态,这样他就可以确信进程不会重新开始。 (10认同)