回答:
すべてのサービスユニットが依存関係としてリストされている、ターゲットタイプのユニットが必要ですWants=
。次に、を使用して起動しsystemctl start unitname.target
ます。(systemctl isolate
ここでは使用しないでください。これにより、サービスの依存関係ツリーにあるもの以外はすべてシャットダウンされます。
Wants=
すべてのサービスを一覧表示したターゲットタイプは、を開始するには十分ですが、ターゲットタイプを使用して作業を停止および再開する方法を見つけることができません。それを可能にするタイプはありますか?
.target
使用できるように見えます。superuser.com/questions/470153/...StopWhenUnneeded=yes
.service
.target
、停止には使用しますsystemctl stop foo.\*
(関係するすべてのサービスにwitで始まるサービスファイルがあるためfoo.
)。
PartOf
ターゲットに加えてターゲットグループのサブユニットで使用してみWants
ましたか?例:PartOf=foo.target
in foo-sub1.service
およびWants=foo-sub1.service foo-sub2.service
in foo.target
。私はこれを試してみて、ターゲットを開始および停止するだけで、すべてのサブユニットを開始および停止することができました。
PartOf =
Requires =と同様の依存関係を設定しますが、ユニットの停止と再起動に限定されます。systemdがここにリストされているユニットを停止または再起動すると、アクションはこのユニットに伝播されます。これは一方向の依存関係であることに注意してください。このユニットを変更しても、リストされているユニットには影響しません。
PartOf = b.serviceがa.serviceで使用されると、この依存関係はb.serviceのプロパティリストでConsistsOf = a.serviceとして表示されます。ConsistsOf =依存関係を直接指定することはできません。
WantedBy
キーを使用して、[Install]
既存のターゲットをメモすることもできます。たとえば、他のユーザーがログインする前にサービスを常に起動させたい場合は、を使用しますmulti-user.target
。