staging.inyokaproject.org

Anwendung vor dem Herunterfahren beenden

Status: Ungelöst | Ubuntu-Version: Kubuntu 24.04 (Noble Numbat)
Antworten |

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14402

rklm schrieb:

Aber das scheint eine "system" Unit zu sein - nur halt eine, die mit einem anderen Nutzer als root läuft.

Ja.
Hier eine "reine" user-unit, die unmittelbar _vor_ dem reboot/shutdown etwas ausführt:

:~$ systemctl --user cat testbefreboot.service
# /home/<user>/.config/systemd/user/testbefreboot.service
[Unit]
Description=test service-unit to tun befor shutdown/reboot
DefaultDependencies=no
Before=umount.target shutdown.target
Requires=network-online.target
Requires=sys-subsystem-net-devices-eth0.device

[Service]
Type=oneshot
ExecStart=/usr/bin/touch /home/<user>/testbefreboot.txt

[Install]
WantedBy=shutdown.target
:~$ systemctl --user status testbefreboot.service
○ testbefreboot.service - test service-unit befor shutdown/reboot
     Loaded: loaded (/home/<user>/.config/systemd/user/testbefreboot.service; enabled; preset: enabled)
     Active: inactive (dead)
:~$ who -b
         Systemstart  2025-09-03 20:27
-rw-r--r--  1 <user>   <user>       0  3. Sep 15:22 testbefreboot.txt

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4735

Die Frage ist ob das was bringt, denn unmittelbar vor dem Shutdown ist ja zu späte, da hat X/Wayland die GUI-Anwendung ziemlich wahrscheinlich schon gekillt. Das muss passieren bevor die Desktop-Sitzung beendet wird.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14402

Marc_BlackJack_Rintsch schrieb:

Das muss passieren bevor die Desktop-Sitzung beendet wird.

Ja, kein Problem, ... man muss nur die richtigen/erforderlichen Abhängigkeiten in der user-service-unit, setzen bzw. benutzen.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14402

michahe schrieb:

Der einzige Hinweis auf systemd war von mir in der Eingangs-Frage...

Warum probierst Du es nicht, mit deinem Script im Verzeichnis "/usr/lib/systemd/system-shutdown"?
Siehe auch die manpage für systemd-shutdown

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4735

@lubux: Was wäre denn da die richtige Abhängigkeit? Das ist ja vielleicht schon ein Problem. Hat Systemd die überhaupt? X/Wayland und der Displaymanager ja, aber letzterer kümmert sich dann ja um die Anmeldung/Desktop-Sitzung. Ich sehe gerade nicht wie man da mit systemd Units dazwischen kommt.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14402

Marc_BlackJack_Rintsch schrieb:

@lubux: Was wäre denn da die richtige Abhängigkeit? Das ist ja vielleicht schon ein Problem. Hat Systemd die überhaupt?

Eine user-service-unit mit:

DefaultDependencies=no
Before=shutdown.target

wird ziemlich früh/schnell ausgeführt. Das muss man ausprobieren. Der TE weiß ja was passiert, wenn der Prozess nicht mit SIGTERM schnell genug, beendet wird.

Antworten |