【问题标题】:How to force supervisord to stop a process in BACKOFF status如何强制supervisord停止处于BACKOFF状态的进程
【发布时间】:2014-08-23 01:33:26
【问题描述】:

当您使用 supervisord 启动进程时,它处于“STARTING”状态,如果出现问题,如果自动重启设置为 true,它将进入“BACKOFF”状态。

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

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

如果我试图阻止它

supervisorctl stop process

我明白了

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

如果我尝试用它开始

supervisorctl start process

我明白了

process: ERROR (already started)

当然我可以禁用自动重启,但它可能很有用,解决方法是限制启动重试次数,有更好的解决方案吗?

【问题讨论】:

    标签: supervisord


    【解决方案1】:

    嘿,这可能对你有帮助:

    当一个自动重启进程处于 BACKOFF 状态时,它将 由 supervisord 自动重启。它将在 STARTINGBACKOFF 状态,直到由于 startretries 的次数已超过而明显无法启动 最大值,此时它将转换到 FATAL 状态。 每次启动重试将花费越来越多的时间。

    因此您无需手动停止 BACKOFF 进程。如果你不想等待太久,最好设置一个小数字来开始重试。

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

    好运

    【讨论】:

    • 这真的没有解决问题 - 你只是告诉他他不需要做他要求的事情。 “您不需要手动停止 BACKOFF 过程”。他在问如何从 BACKOFF 切换到 STOPPED 状态,这样他就可以确信该过程不会重新开始。
    【解决方案2】:

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

    supervisorctl stop <gname>:*
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-23
      • 2013-09-26
      • 2015-11-19
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      相关资源
      最近更新 更多