![Systemd-sequenzieller Stopp von Template-Unit-Instanzen](https://rvso.com/image/789288/Systemd-sequenzieller%20Stopp%20von%20Template-Unit-Instanzen.png)
Ich habe eine Vorlageneinheit, die ich erstellen muss, um einige Dienste zu starten/stoppen, die auf einem bestimmten Port ausgeführt werden. So etwas wie [email protected]
, [email protected]
.
[Unit]
After=network.target
PartOf=services.target
[Service]
ExecStart=app run --port %i
ExecStopPost=sleep 5
[Install]
WantedBy=multi-user.target
Ich habe ein Ziel erstellt, um alle diese Dienste gleichzeitig zu verwalten.
cat services.target
[Unit]
[email protected] [email protected]
Das funktioniert gut. Sie stellen alle dieselbe API bereit. Um die Dienste zu unterbrechen, möchte ich also nur einen Prozess gleichzeitig neu starten.
. Eine Lösung könnte After
darin bestehen, in zu verwenden unit template
, aber das ist nicht sehr flexibel, da ich mehr oder weniger dieser Prozesse laufen lassen könnte. Wenn ich einen entferne, unterbreche ich möglicherweise die Abhängigkeitskette.... Die einzige Lösung, die ich gefunden habe, war also, ein Bash-Skript zu schreiben, das die Instanzen einzeln stoppt/startet, mit einem sleep
dazwischen. Das bedeutet, dass ich das target
bis stop
und verwenden kann, start
aber nicht restart
..., was nicht praktisch ist.
Welche anderen Optionen habe ich? Welche Nutzungsmöglichkeiten gibt es notify
?