回答:
すべてのサービスユニットが依存関係としてリストされている、ターゲットタイプのユニットが必要です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.targetin foo-sub1.serviceおよびWants=foo-sub1.service foo-sub2.servicein foo.target。私はこれを試してみて、ターゲットを開始および停止するだけで、すべてのサブユニットを開始および停止することができました。
PartOf =
Requires =と同様の依存関係を設定しますが、ユニットの停止と再起動に限定されます。systemdがここにリストされているユニットを停止または再起動すると、アクションはこのユニットに伝播されます。これは一方向の依存関係であることに注意してください。このユニットを変更しても、リストされているユニットには影響しません。
PartOf = b.serviceがa.serviceで使用されると、この依存関係はb.serviceのプロパティリストでConsistsOf = a.serviceとして表示されます。ConsistsOf =依存関係を直接指定することはできません。
WantedByキーを使用して、[Install]既存のターゲットをメモすることもできます。たとえば、他のユーザーがログインする前にサービスを常に起動させたい場合は、を使用しますmulti-user.target。