Ist es möglich, viele Systemd-Dienste mit einem Ziel neu zu starten?

Ist es möglich, viele Systemd-Dienste mit einem Ziel neu zu starten?

Ich muss viele Service-Unit-Dateien neu starten und möchte sie nicht alle abtippen müssen. Ist es möglich, ein einzelnes Ziel oder einen einzelnen Service zu haben, der nicht weiß, wie die anderen Services gestartet werden, sie aber zusammenfasst, sodass sie alle mit einem einzigen Befehl neu gestartet werden?

Wie schreibe ich meine Systemd-Service-Unit-Datei oder Zieldatei, wenn ich dies möchte systemctl restart one-to-rule-them-all?

Anforderungen: 1. Das übergeordnete Ziel möchte, dass viele andere Dienste gestartet werden. 2. Das übergeordnete Ziel sollte nichts darüber wissen, wie diese Dienste gestartet werden.

Als ich dies versucht habe, sudo systemctl restart one-to-rule.targetpassierte nichts.

# /etc/systemd/system/one-to-rule.target
[Unit]
Description=One To Rule Them All
Requires=multi-user.target
Wants=program-api.service  program-gui.service yet-another.service
After=multi-user.target display-manager.service

[Install]
WantedBy=graphical.target

Alle diese Einheiten waren aktiviert program-api.service program-gui.service yet-another.serviceund one-to-rule.targetscheinen alle geladen und aktiv zu sein. Ich kann den Rechner booten und die Dienste werden alle genau so gestartet, wie ich sie haben möchte. Ich möchte jedoch einfach etwas eingeben systemctl restart one-to-rule.targetoder so, anstatt neu zu booten.

Die Abhängigkeitsdiagramme sehen so aus

$ systemctl list-dependencies one-to-rule.target
one-to-rule.target
● ├─program-api.service
● ├─program-gui.service
● ├─yet-another.service
● └─multi-user.target

$ systemctl list-dependencies --reverse one-to-rule.target
one-to-rule.target
● └─graphical.target

Antwort1

Dies kann funktionieren, aber jede dieser Service-Einheiten muss über verfügen, PartOf=one-to-rule.targetdamit Neustarts an sie weitergegeben werden. (Dies ist eigentlich nur eine schwächere Version von Requires=<…>.target.)

Leider ist es nicht möglich, die umgekehrte Abhängigkeit (ConsistsOf) direkt im Ziel anzugeben – Sie müssen alle Servicedateien erweitern.

verwandte Informationen