システム管理サービスの再起動を制御しますか?失敗した場合はデフォルトで再起動したいが、特定の条件が発生した場合は再起動しないサービスがあります。 Restart = ab-normalまたはRestart = alwaysを使用すると機能しますが、特定の条件が発生した場合は再起動を停止したいと思います。サービスに関連するハードウェアに障害が発生しない限り、サービス全体の使用は常に再開する必要があります。残念ながら、Restart = ab-normalまたはRestart = alwaysには知性がないようです。特定の終了コード(例:255)を返すコードロジックを作成しても、Restart =パラメータはこのクラスを無視し、コードを介して自分のコードでそれを制御する方法を見つけることができないと思いますか?終了コード=255以外で再起動=常にだと思うか、必要だと思いますか?この概念を実装する方法はありますか?
答え1
systemd
このサービスではブロック終了状態の再開オプション:
.configを使用して構成された再起動設定に関係なく、デフォルトのサービスプロセスが返されたときに自動サービスの再起動を防ぐ終了ステータス定義のリストを取得します
Restart=
。終了ステータス定義は、スペースで区切られた数字の終了コードまたは終了信号名です。デフォルトは空のリストなので、デフォルトで構成された再始動ロジックから終了状態は除外されません。
したがって、特定の終了コード(質問255など)を返すようにサービスを変更できる場合は、次のように設定できます。
RestartPreventExitStatus=255