Shutdown Reihenfolge

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
king-crash
Beiträge: 739
Registriert: 08.08.2006 12:07:56
Lizenz eigener Beiträge: MIT Lizenz

Shutdown Reihenfolge

Beitrag von king-crash » 17.02.2020 18:10:01

Ich habe ein Programm, das über eine selbstgeschriebene Systemd Unit gestartet wird. Das funktioniert auch gut. Beim shutdown ist es aber das Problem das vor Beenden irgend etwas Anderem zuerst dieser Dienst beendet und auch auf die Beendigung gewartet werden soll.
Beim Starten funktionieren die "Requires" Angaben um die Reihenfolge zu steuern. Gibt es etwas vergleichbares für die entgegengesetzte Richtung?

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Shutdown Reihenfolge

Beitrag von JTH » 17.02.2020 18:24:06

Requires regelt nicht die Reihenfolge. Requires und das etwas lockerere Wants regeln nur Abhängigkeiten an sich. Dein Service und der von dem du abhängst, werden durch Requires und Wants erstmal nur gleichzeitig gestartet – und auch gestoppt.

Die Reihenfolge beim Starten und beim Stoppen kannst du zusätzlich mit After und Before angeben. Die Angabe bezieht sich dabei auf den Start, beim Herunterfahren passiert das Stoppen dann in genau umgekehrter Reihenfolge.

Du suchst hier ein After=deine-abhaengigkeit.service.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
king-crash
Beiträge: 739
Registriert: 08.08.2006 12:07:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Shutdown Reihenfolge

Beitrag von king-crash » 17.02.2020 18:29:18

Ja das dachte ich auch immer. Scheint aber nicht so zu sein...
Ich habe zum Testen ein eigenes Target angelegt:

Code: Alles auswählen

[Unit]
Description=GUI
Requires=graphical.target
After=graphical.target
Mein Dienst startet in diesem:

Code: Alles auswählen

...
[Install]
WantedBy=gui.target
Beim Shutdown ist aber alles wild gewürfelt.

Um die Sache zu vereinfachen: Wie würdest du eine .service Datei aussehen lassen, dass sie als Erstes beendet wird?

Antworten