使用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,有更好的解决方案吗?
答案 0 :(得分:4)
嘿,这对你有帮助:
当自动重启过程处于BACKOFF状态时,它将是 由supervisord自动重启。它会在之间切换 STARTING 和 BACKOFF 状态,直到明显由于 startretries 的数量已超出而无法启动 最大值,此时它将转换为FATAL状态。 每次开始重试都会花费更多的时间。
因此您无需手动停止BACKOFF过程。如果您不想等待太长时间,最好为初始设置设置一个小数字。
在此处查看更多信息:http://supervisord.org/subprocess.html
GOOD LCUKY
答案 1 :(得分:-4)
使用以下命令强制主管停止处于BACKOFF状态的进程。
supervisorctl stop <gname>:*