web-dev-qa-db-ja.com

30秒のサイクルで5回再試行するようにsystemdサービスをセットアップする方法

Systemdでスクリプトを開始し、30秒間隔で最大5回再試行するようにします。 systemd.serviceマニュアルを読んでインターネットを検索しても、明らかな答えは得られませんでした。

18
jross

多くの試行錯誤の後、問題を解決し、ここに投稿する価値があると思いました...

30秒間隔で最大5回の再試行を許可するには、関連するsystemdサービスファイルで次のオプションを使用します。

[Unit]
StartLimitInterval=200
StartLimitBurst=5
[Service]
Restart=always
RestartSec=30

これは、「Type = idle」を使用してスクリプトを実行するサービスで機能しました。 「StartLimitInterval」は「RestartSec * StartLimitBurst」よりも大きい必要があります。そうでない場合、サービスは無期限に再起動されます。

33
jross