遅いサービスを再起動したときにsystemdに「以降」の依存関係を維持させる方法

遅いサービスを再起動したときにsystemdに「以降」の依存関係を維持させる方法

私たちのシステムにはAとBという2つの依存関係があります。ここで、AはBに対する「以降」の依存関係を持ちます。

場合によっては、両方のサービスをすぐに再起動したいと思います。問題は、Bがエレガントに停止するために時間がかかることです。 A は最初に停止を終了し、B への依存関係が満たされるのですぐに再起動します。その後、BはAの後に再開される。その逆ではありません。

私たちが望む動作は、Bが停止して再起動を完了するまでAが再起動しないことです。

この問題を解決できるシステム設定はありますか? BindsToは私たちが望む動作を提供しますか?

答え1

再起動するたびに再起動するには、BAのものを使用できます。BindsTo=B+After=BサービスガイドラインA。あるいは、systemdに依存しない可能性があるより「汚い」アプローチの場合は、次のようにAサービスの再起動コマンドを追加できます。ExecStartPost=Bユニットファイルの下のディレクティブ。

これにより、サービスが開始(または再起動)されるたびにBサービスも強制的に再起動されますA

関連情報