svscanに再試行回数設定がありますか?

svscanに再試行回数設定がありますか?

私はエラーが発生して停止する可能性のあるスクリプトを監視するためにsvscanを使用しています。スクリプトが終了すると、svscanはすぐにスクリプトを再起動しますが、すぐに終了します。だから、再起動し続けます。再試行回数など、svscanの設定や設定が見つからないようです。似ていることをご存知ですか?

答え1

もともと、ベルンシュタインデモントールには、そのためのメカニズムはありませんでした。サービスディレクトリには、単一のrunプログラムと固定された自動再起動ポリシーがあります。ただし、daemontools ファミリーの複数のメンバーには、これを改善し、この状況を解決するために使用できる柔軟で一般的なメカニズムがあります。

これはあなたの状況で使用できる一般的なメカニズムです。ここでは、noshサービス管理についてもう少し詳しく説明します。これが他の側面にどのように適用されるかは非常に明白です。

noshの自動再起動制御

nosh サービス管理では、daemontools-encore は同じ拡張 (Bernstein ソースに関して) サービス状態を使用します。停止スタートここに行く走る失敗止める

サービス開始前とサービス状態のときスタート状態では、nosh サービス管理者がstartプログラムを実行します。

サービスが終了してまだ「開始」状態にある場合、noshサービス管理者は次のようにrestartプログラムを実行します。失敗再変換するかどうかを決定する状態走る国または止める(それから停止)状態。プログラムrestartはサービス固有の方法でこれを決定し、ここでサービスが「あまりにも多く」再起動されたのか、それとも別の方法で再起動できなくなったのかを明示的に決定します。

restart基本サービスプロセスがどのように終了したかに関する情報(正常終了、信号に応答して終了するか、終了コード、または特定の信号を含む)に関する情報をコマンドライン引数に渡します。サービス管理者が再度切り替えることを選択走るrestartプログラムが正常に実行および終了し、次に切り替えることができるかどうかを示します。止める(したがって、停止) 他に指定されます。

restartstartPerlプログラム、シェルスクリプト、execlineプログラム、コンパイルされたバイナリなど、必要なものは何でも構いません。case...esacif...を使用するシェルスクリプトの非常に簡単な練習ですfi。 nosh-bundlesパッケージは、restart使用可能なシェルスクリプトで書かれたプログラムのいくつかの例を提供します。Debian/Ubuntu で利用可能そしてFreeBSD/PC-BSD/DragonFlyBSD/&cに適用可能です。

したがって、サービスが「あまりにも多く」再起動されたことを確認するには、startプログラムにカウンタをゼロに初期化することができます(サービスディレクトリのファイルにあります)。プログラムは、restartカウンタがオンリーに達した場合にのみカウンタをインクリメントします。成功ステータスが特定の値より小さい場合に返されます。もちろん、より多くの要素と他の要素を統合して決定を下すこともできます。

  • サービスがクラッシュした場合、またはシグナルによって中断された場合は、自動再起動を停止し、完全にシャットダウンしたり、「クリーンシャットダウン」シグナル(たとえば)によって完全にシャットダウンした場合にのみ自動的に再起動したい場合がありますSIGTERM
  • サービスが破損し(一部のサービス固有の方法で)、管理者の介入なしに正しく再起動できないことが検出された場合は、自動再起動を中止できます。
  • sleepたとえば、計算期間に関連する一種の速度制限メカニズムを導入できます。

追加読書

  • ジョナサンデボインポラード(2015)。デーモンツールシリーズ。一般的な答え。
  • ジョナサン・デ・ボーインポラード。service-managerスナックガイド

    これスナックガイド次のように利用可能Debian/Ubuntu パッケージそしてFreeBSD/PC-BSD/DragonFlyBSD/&c。パックservice-manager次の方法でインターネットに接続せずにコンピュータからアクセスできます。

    • man service-manager
    • xdg-open /usr/local/share/doc/nosh/service-manager.html
  • ブルースガンター。 supervise。 daemontools-encore マニュアル。 §8。
  • ゲレットパフ。 runsv。ランブック。 §8。
  • ウェイン・マーシャル(2013)。perpetrate。囚人のハンドブック。 §5。
  • ローランベルコ。 s6-supervise。 s6 マニュアル。

答え2

同意するsvscan柔軟性がありません。考慮することができます。monit、スクリプトが可能です。

関連情報