統制グループは職業ではない。

統制グループは職業ではない。

システム化されたサービスユニットがあります。

[Unit]
After=network.target

[Service]
User=<user>
Type=forking
ExecStart=/opt/app/start.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

/opt/app/start.sh は複数のプロセスを起動してフォークします。

for i in 1 2 3 4 5; do
    bash another_script.sh &
done

bash another_script.shプロセスの1つがゼロ以外の状態で終了するまで、すべてがうまく機能します。この場合、systemdサービスを再起動する必要があります。このような場合、コントロールグループの障害を監視してサービスを再起動する方法はありますか?

答え1

統制グループは職業ではない。

「コントロールグループの失敗」などはありません。制御グループは、単にリソースの制約に使用されるコレクションです。彼らは「失敗」しません。

ここでの失敗は、サービスを正しく設計できなかったことです。複数のデーモンを監視し、サービス管理者がデーモンのシャットダウン時に個別に再起動するようにするには、複数のサービスを定義する必要があります。

追加読書

答え2

からhelp wait

-nオプションが指定されている場合は、次のジョブが終了するのを待って終了ステータスを返します。

wait -nしたがって、スクリプトでこれを使用して、タスクが完了した時期を知ることができるはずです。

関連情報