web-dev-qa-db-ja.com

スーパーバイザーにBACKOFFステータスのプロセスを強制的に停止させる方法

スーパーバイザーを使用してプロセスを開始すると、プロセスは「STARTING」ステータスになり、問題が発生した場合、自動再起動がtrueに設定されていれば「BACKOFF」ステータスになります。

「startretries」が試行されるのを待ちたくありません。supervisorctlを使用して手動で再起動プロセスを停止したいと思います。私が見つけた唯一の方法は、監視対象サービス全体を停止して再開することです(自動開始がない場合、すべてのプロセスが「STOPPED」ステータスになります)。

監視対象で管理されている他のプロセスで停止したくないので、これを行うためのより良い方法はありますか(「BACKOFF」ステータスから「STOPPED」ステータスを強制します)。

私がそれを止めようとすると

supervisorctl stop process

私は得る

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

私がそれを始めようとすると

supervisorctl start process

私は得る

process: ERROR (already started)

もちろん、自動再起動を無効にすることもできますが、それは便利な場合があります。回避策は、再起動を制限することです。より良い解決策はありますか?

21
zenbeni

ねえ、これは多分あなたのために役立つでしょう:

自動再起動プロセスがBACKOFF状態の場合、supervisordによって自動的に再起動されます。 [〜#〜] start [〜#〜][〜#〜] backoff [の間で切り替わります〜#〜]は、startretriesの数が最大値を超えたために開始できないことが明らかになるまで状態を示します、その時点で、FATAL状態に移行します。各開始の再試行には、徐々に時間がかかります。

したがって、BACKOFFプロセスを手動で停止する必要はありません。長時間待ちたくない場合は、startretriesに少し数を設定することをお勧めします。

詳細はこちらをご覧ください: http://supervisord.org/subprocess.html

GOOD LCUKY

3
Simon Jin