Lorsque j'essaie de fermer une logindsession (en me déconnectant), certains processus continuent de s'exécuter sous la session, l'empêchant de se terminer correctement, ce qui entraîne l' user@uid.serviceabsence de fin. J'ai entendu dire que ce dernier comportement est prévu (il est souhaitable que certaines unités continuent à fonctionner), mais je suppose que laisser les sessions en cours n'est pas le moyen approprié pour y parvenir. En outre, lorsque je termine manuellement la session, le user@uid.serviceserveur se termine également, il semble donc que des sessions en attente soient utilisées à cette fin.
Pour illustrer ce que je suis sur, ceci est une partie de la sortie de systemd-cglsalors que je suis normalement connecté (c'est à dire en ce moment):
Control group /:
-.slice
└─user.slice
└─user-1000.slice
├─user@1000.service
│ └─ //various units listed; removed for brevity
└─session-c8.scope
├─4883 login -- sammko
├─4905 /usr/bin/gnome-keyring-daemon --daemonize --login
└─ //various other processes listed; removed for brevity
La sortie est complètement attendue. Après vous être déconnecté de la session:
Control group /:
-.slice
└─user.slice
└─user-1000.slice
├─user@1000.service
│ └─ //various units listed; removed for brevity
└─session-c8.scope
└─4905 /usr/bin/gnome-keyring-daemon --daemonize --login
gnome-keyring-daemonsurvit en quelque sorte, maintenant la session en vie. Si nous courons maintenant loginctl show-session c8, nous trouvons State=closingdans la sortie. Si nous continuons, kill -HUP 4905nous constatons que le processus et la session se terminent, entraînant le tout user-uid.sliceavec lui. Si nous devions procéder kill -TERM 4905, le processus aurait également pris fin. Cela me fait penser que gnome-keyring-daemoncela n'ignore pas les signaux, ni rien de ce genre. Au cas où le processus aurait besoin d'un signal deux fois pour se fermer, j'ai essayé de le faire kill -HUP 4905avant de me déconnecter et le processus s'est également terminé.
J'avais l'impression que systemd tente de mettre fin aux processus SIGHUPauxquels il gnome-keyring-daemonrépond normalement. (Je m'y suis gpg-agentattardé également, et je ne l’ai jamais ignoré SIGHUP. Mais c’est une autre histoire.)
Ma question est donc la suivante: pourquoi gnome-keyring-daemoncontinuer à fonctionner après la déconnexion sans raison apparente et comment le résoudre, à part l’activation KillUserProcesses.
Veuillez également noter que cette question n’est pas liée aux changements de systemd-230