web-dev-qa-db-ja.com

systemdのソフト依存関係

Systemdサービス間にソフトな依存関係を作成する方法があるかどうかを理解しようとしています。基本的に、(ソフト)依存関係としてマークされた他のサービスを開始する「傘」サービスを作成したいのですが、それらが有効になっている場合に限ります-アンブレラは決して無効になっている依存サービスを開始するべきではありません。

具体的には、このようなアンブレラユニットの作成を目的とした cfengine-systemdプルリクエスト を受け取りました。残念ながら、提案されたcfengine3.serviceユニットは、依存ユニットの有効/無効状態を尊重せず、いずれの場合もそれらを開始します。

以前、ターゲットユニットを使って同じことをしようとしましたが、 恥ずかしそうに失敗しました

手がかりはありますか?

前もって感謝します

Michaelの質問に続くUpdatecfengine3.serviceが無効になっているため、systemdは依存サービスを開始しようとしないでください。

1
bronto

有効/無効状態は、サービスが起動時に開始されるかどうかを制御します。このコンテキストでは、依存サービスを無効のままにし、包括的サービスの状態のみを変更することをお勧めします。アンブレラサービスが一部の依存関係のみを開始するようにするには、それらをアンブレラサービスの.requiresディレクトリ(たとえば、/ etc/systemd/system/umbrella-unit.service/requireディレクトリ)にソフトリンクする必要があります。

1
Ektich