Ich habe ungefähr ein halbes Dutzend .service
Dateien für die verschiedenen Teile geschrieben, aus denen das System besteht, an dem ich arbeite. Es ist nützlich, das gesamte System stückweise starten zu können, aber ich hätte auch gerne eine einzige Einheit, die das gesamte System in einem Aufruf startet systemctl
.
Was ist der beste Weg, dies zu tun?
WantedBy
Schlüssel im[Install]
Abschnitt verwenden und ein bereits vorhandenes Ziel notieren. Wenn Sie beispielsweise möchten, dass Ihre Dienste immer gestartet werden, bevor sich andere Benutzer anmelden können, verwenden Siemulti-user.target
.Wants=
Zieltyp mit der Auflistung aller Dienste scheint zum Starten ausreichend zu sein , ich kann jedoch keine Möglichkeit finden, das Stoppen und Neustarten mithilfe eines Zieltyps zum Laufen zu bringen . Gibt es einen Typ, der das erlaubt?.target
kann getan werden , indemStopWhenUnneeded=yes
in jedem der.service
Dateien. superuser.com/questions/470153/....target
und zum Stoppen verwende ichsystemctl stop foo.\*
(da alle beteiligten Dienste Dienstdateien haben, die mit wit beginnenfoo.
).Haben Sie versucht,
PartOf
die Untereinheiten der Zielgruppe zusätzlich zumWants
Ziel zu verwenden? Bsp.:PartOf=foo.target
Infoo-sub1.service
undWants=foo-sub1.service foo-sub2.service
infoo.target
. Ich habe es gerade versucht und konnte alle meine Untereinheiten starten und stoppen, indem ich das Ziel startete und stoppte.quelle