Gnome Skript beim Herunterfahren ausführen

  • Hallo,

    ich habe ein Skript welchges ich ausführen möchten wenn ich mich abmelde bzw. den PC (Gnome 46) herunterfahre.
    In den Systemeinstellungen von Gnome gint es nur den Punkt Startprogamme.

    Gibt es da eine Möglichkeit ein Skript auch vor dem Herunterfahren automatisch ausführen zu lassen?

    Arch Linux | Gnome | HP ProDesk 600 G5 Mini | Raspberry Pi Zero W | OPNSense | OpenWrt | OpenPli | FOSS | Depressiv

  • Hier wird ein Script mit systemd beim Herunterfahren oder Neustarten ausgeführt: -> https://forum.ubuntuusers.de/topic/script-b…-systemd-ausfu/

    Um das auch beim Abmelden auszuführen müsste man das wahrscheinlich so ergänzen:

    Code
    Before=user-session.target 
    
    [Install] WantedBy=user-session.target 


    Ich habe damit aber keine Erfahrung außer das ich mal davon gelesen habe. Warte mal ab ob sich da die üblichen verdächtigen melden. :)

  • Jo ich würde das definitiv auch über systemd machen:

    Grobe Anleitung dazu:

    Erst mal das Bash Script schreiben z.b. so:

    Bash
    #!/bin/bash
    echo "Benutzer wurde ausgeloggt" >> /var/log/user-logout.log
    # Hier kannst du weitere Befehle hinzufügen


    Dieses Script erstellt nur eine Log Datei mit dem Inhalt "Benutzer wurde ausgeloggt" also nichts wahnsinniges aber das kannst du dann ja so anpassen wie du es brauchst.

    Speichere das Script am besten unter "/usr/local/bin/logout-script.sh" und mache das Script dann ausführbar: chmod +x /usr/local/bin/logout-script.sh

    Danach erstellen wir einen systemd Service, dazu eine Datei z.b. mit dem Namen "logout-script.service" /etc/systemd/system/logout-script.service erstellen.

    Der Inhalt der Datei ca. so:


    Code
    [Unit]
    Description=Script ausführen wenn ein Nutzer sich abmeldet
    After=network.target
    
    [Service]
    Type=oneshot
    ExecStart=/usr/local/bin/logout-script.sh
    
    [Install]
    WantedBy=default.target

    Um das Skript beim Abmelden des Benutzers auszuführen, erstelle eine Datei unter /etc/systemd/system/user@.service.d/logout.conf:

    Code
    [Service]
    ExecStopPost=/usr/local/bin/logout-script.sh

    Lade den systemd-Daemon neu, um die Änderungen zu übernehmen:

    Code
    sudo systemctl daemon-reload

    Danach noch deinen Service aktivieren:

    Code
    sudo systemctl enable logout-script.service

    Achtung das ganze ist ungetestet ;)

    --
    Ciao!

    Linux Nutzer seit über 20 Jahren. I ❤️ Freedom!

    Offizieller Proton-Botschafter aus der Schweiz 🇨🇭 😅

    Meine Haupt-Distribution ist Ubuntu.

    Mein Blog: https://rueegger.me

    Wer meinen sinnlosen Gedanken folgen möchte, kann dies gerne auf Mastodon tun: https://swiss.social/@srueegger

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!