Die automatisch gestartete .desktop-Anwendung wird beim Abmelden nicht beendet
Ich verfolge die Antwort von Autostarting der .desktop-Anwendung beim Start funktioniert nicht , und es funktioniert gut. Ich starte ein Python-Skript. Die .desktop
Bewerbung 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.conf
Info 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
Dies liegt daran, dass KillUserProcesses
es no
standardmäß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=yes
ein /etc/systemd/logind.conf
und melden Sie sich erneut an.
aktueller Wert kann überprüft werden durch (sollte true
nach Ä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.py
Prozessen besteht darin, dass der gnome-terminal-server
Prozess 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
.