L'application .desktop démarrée automatiquement ne se ferme pas à la déconnexion
Je suis la réponse de l' application Autostart .desktop au démarrage ne fonctionne pas , et cela fonctionne bien. Je lance un script python. L' .desktopapplication ressemble à ceci :
[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=shutdown_notify.py
Icon=system-run
 
    Cela fonctionne bien - mais si je me déconnecte et me connecte, je vois que la première instance de mon script est toujours en cours d'exécution.
$ ps -C shutdown_notify.py
  PID TTY          TIME CMD
 4026 ?        00:00:01 shutdown_notify
25421 ?        00:00:00 shutdown_notify
 
    Existe-t-il un moyen de s'assurer que le script se ferme à la déconnexion ? Dois-je ajouter une logique pour quitter à la déconnexion ?
Mettre à jour avec les logind.confinformations demandées par @binarysta
$ grep -E 'KillUserProcesses|KillOnlyUsers|KillExcludeUsers' /etc/systemd/logind.conf
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
 
    Mise à jour, j'ai deux fichiers autostart : l'un lance le script python ci-dessus, l'autre lance gnome-terminal. Après un redémarrage, je vois :
$ 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
 
    Déconnectez-vous, connectez-vous et je vois :
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
Réponses
C'est parce que KillUserProcessesc'est nopar défaut dans Ubuntu . Ce paramètre empêche les processus utilisateur d'être tués lorsque l'utilisateur se déconnecte complètement. Pour modifier ce comportement afin d'avoir tous les processus utilisateur tués sur l'utilisateur de fermeture de session, mis KillUserProcesses=yesen /etc/systemd/logind.confet re-connexion.
la valeur actuelle peut être vérifiée par (cela devrait être trueaprès le changement)
busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager KillUserProcesses
b true
 
     METTRE À JOUR
La différence ici entre gnome-terminal(GUI Application) et les shutdown_notify.pyprocessus est que le processus est gnome-terminal-serverlié au même TTY que tous les autres processus X11 en cours d'exécution. En vous déconnectant, l'environnement de bureau et le système de fenêtrage (x11) seront terminés, c'est pourquoi il se gnome-terminalfermera.