2017-02-01 4 views
0

サービスを監視してクラッシュした場合に再起動するsystemdファイルを作成しようとしています。ここでは難しい部分があります:サービスが1分に5回以上クラッシュした場合、失敗したとマークして自動的に再起動しようとしません。 Upstartでは、これは "respawn limit"で簡単に行えました。updartの "respawn limit"と同等のシステム

SystemdはStartLimitIntervalSecを使用して自動再起動をレート制限できますが、それは私が望むものではありません。

+0

この質問は、serverfault.comでより適切かもしれません。それはプログラミング関連のものなのかどうかはわかりません。 –

答えて

1

ようこそStackOverflow。システムの質問については、Unix & Linux StackExchangeのサイトは将来的にもっと適切な質問です。

StartLimitInterval=60を探しているようですが、制限する秒数を設定できます。 systemdバージョン230付近では、StartLimitIntervalSec=に改名されています。

これは、StartLimitBurst=5と組み合わせて、毎分最大5回の開始を設定します。

StartLimitActionもありますが、デフォルトではnoneという値がデフォルトで設定されています。

これらはman systemd.unitに記載されています。ディレクティブに関するドキュメントの場所がわからない場合は、man systemd.directiveを使用して、ディレクティブがどこに文書化されているかを調べることができます。

+0

私は間違った場所に投稿することをお詫び申し上げます。私はそこに再び投稿します。しかし、StartLimitIntervalSecは私が探しているものではありません。それは単に自動開始をレート制限します。私はサービスが諦めて、次の分をやり直すのではなく、限界に達すると失敗した状態に入るようにしたい。それが「respawn limit」です。 – Sergey

+0

私が提案したように、公式文書で 'StartLimitAction ='について読んだことがありますか? " 'none'が[デフォルト]に設定されている場合、レート制限を押すと起動が許可されないという動作以外のトリガは発生しません" –

+0

もう一度見ましたが、あなたは正しい!ありがとう! – Sergey