Die automatisch gestartete .desktop-Anwendung wird beim Abmelden nicht beendet

Jun 17 2020

Ich verfolge die Antwort von Autostarting der .desktop-Anwendung beim Start funktioniert nicht , und es funktioniert gut. Ich starte ein Python-Skript. Die .desktopBewerbung sieht so aus:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=shutdown_notify.py
Icon=system-run

Dies funktioniert gut - aber wenn ich mich abmelde und wieder anmelde, sehe ich, dass die erste Instanz meines Skripts noch ausgeführt wird.

$ ps -C shutdown_notify.py
  PID TTY          TIME CMD
 4026 ?        00:00:01 shutdown_notify
25421 ?        00:00:00 shutdown_notify

Gibt es eine Möglichkeit, sicherzustellen, dass das Skript beim Abmelden beendet wird? Muss ich Logik hinzufügen, um beim Abmelden zu beenden?


Update mit logind.confInfo wie von @binarysta angefordert

$ grep -E 'KillUserProcesses|KillOnlyUsers|KillExcludeUsers' /etc/systemd/logind.conf
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root

Update, ich habe zwei Autostart-Dateien: eine startet das obige Python-Skript, die andere startet gnome-terminal. Nach einem Neustart sehe ich:

$ ps aux | grep -E "gnome-terminal|shutdown_notify"
training  6495  0.9  0.1  84936 29360 ?        S    07:13   0:00 /usr/bin/python3 /usr/local/bin/shutdown_notify.py
training  6565  0.7  0.2 622880 34448 ?        Sl   07:13   0:00 /usr/lib/gnome-terminal/gnome-terminal-server
training  9647  0.0  0.0  13264  2564 pts/0    S+   07:13   0:00 grep --color=auto -E gnome-terminal|shutdown_notify

Melden Sie sich ab, melden Sie sich an und ich sehe:

training  6495  0.1  0.1  85076 29360 ?        S    07:13   0:00 /usr/bin/python3 /usr/local/bin/shutdown_notify.py
training 19110  3.1  0.1  84936 29636 ?        S    07:15   0:00 /usr/bin/python3 /usr/local/bin/shutdown_notify.py
training 19141  2.3  0.2 696496 34584 ?        Sl   07:15   0:00 /usr/lib/gnome-terminal/gnome-terminal-server
training 19421  0.0  0.0  13264  2696 pts/0    S+   07:15   0:00 grep --color=auto -E gnome-terminal|shutdown_notify

Antworten

1 binarysta Jun 18 2020 at 12:56

Dies liegt daran, dass KillUserProcesseses nostandardmäßig in Ubuntu ist . Diese Einstellung bewirkt, dass Benutzerprozesse nicht beendet werden, wenn sich der Benutzer vollständig abmeldet. Um dieses Verhalten zu ändern, damit alle Benutzerprozesse beim Abmelden des Benutzers beendet werden, setzen Sie sich KillUserProcesses=yesein /etc/systemd/logind.confund melden Sie sich erneut an.

aktueller Wert kann überprüft werden durch (sollte truenach Änderung sein)

busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager KillUserProcesses
b true

AKTUALISIEREN

Der Unterschied zwischen gnome-terminal(GUI-Anwendung) und shutdown_notify.pyProzessen besteht darin, dass der gnome-terminal-serverProzess an dasselbe TTY wie alle anderen ausgeführten X11-Prozesse gebunden ist. Durch das Abmelden werden die Desktop-Umgebung und das Windowing-System (x11) beendet und daher beendet gnome-terminal.