.service
私は私が開発しているシステムを構成するさまざまな部分について約6つのファイルを作成しました。システム全体を段階的に起動できることは便利ですが、1回の呼び出しでシステム全体を起動できるデバイスもありたいと思いますsystemctl
。
最良のアプローチは何ですか?
答え1
あなたは一つが欲しい対象ユニット、すべてのサービスユニットは依存関係としてリストされていますWants=
。それからsystemctl start unitname.target
。 (ここでは使用しないでくださいsystemctl isolate
。これにより、おそらく不要なサービス依存ツリーのエントリを除くすべてのエントリがオフになります。)
答え2
使ってみましたか?PartOf
Wants
ターゲティングに加えて、ターゲットグループのサブユニットもターゲティングしますか?例:PartOf=foo.target
infoo-sub1.service
とWants=foo-sub1.service foo-sub2.service
in foo.target
。これを試してみましたが、ターゲットを起動して停止するだけで、すべてのサブユニットを起動して停止できました。
部分=
依存関係の設定はRequires =に似ていますが、デバイスを停止して再起動することに制限されています。 systemdがここにリストされているデバイスを停止または再起動すると、ジョブはそのデバイスに伝播されます。これは一方向の依存関係です。このデバイスを変更しても、リストされているデバイスには影響しません。
a.serviceでPartOf = b.serviceを使用している場合、この依存関係はb.serviceのプロパティリストにConsistsOf = a.serviceとして表示されます。 ConsistsOf=依存関係を直接指定することはできません。