Quando tento fechar uma sessão logind
(efetuando logout), alguns processos permanecem em execução na sessão, evitando que ela seja terminada corretamente, resultando em [email protected]
não finalizando. Ouvi dizer que o último é o comportamento intencional (é desejável que algumas unidades permaneçam em execução), mas presumo que deixar as sessões em execução não é a maneira correta de conseguir isso. Além disso, quando termino manualmente a sessão, o [email protected]
também termina, então quase parece que as sessões remanescentes são usadas para este propósito.
Para ilustrar o que estou fazendo, isso faz parte da saída de systemd-cgls
, enquanto eu normalmente estou conectado (por exemplo, agora):
Control group /:
-.slice
└─user.slice
└─user-1000.slice
├─[email protected]
│ └─ //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
A saída é completamente esperada. Depois de sair da sessão:
Control group /:
-.slice
└─user.slice
└─user-1000.slice
├─[email protected]
│ └─ //various units listed; removed for brevity
└─session-c8.scope
└─4905 /usr/bin/gnome-keyring-daemon --daemonize --login
gnome-keyring-daemon
de alguma forma sobrevive, mantendo a sessão ativa. Se agora executarmos loginctl show-session c8
, encontraremos State=closing
na saída. Se prosseguirmos para kill -HUP 4905
, descobrimos que o processo e a sessão terminam, levando todo o user-uid.slice
com ele. Se fôssemos prosseguir com kill -TERM 4905
, o processo também teria terminado. Isso me faz pensar que gnome-keyring-daemon
não ignora os sinais, ou qualquer coisa assim. Caso o processo precisasse de um sinal duas vezes para fechar, tentei kill -HUP 4905
antes de sair e o processo terminou também.
Fiquei com a impressão de que o systemd tenta encerrar processos com SIGHUP
, aos quais gnome-keyring-daemon
normalmente responde de acordo. (Eu tive gpg-agent
linger junto com isso também, e que com sucesso ignora SIGHUP
. Mas isso é uma história diferente.)
Então, minha pergunta é: Por que o gnome-keyring-daemon
continua em execução após o logout sem motivo aparente e como resolvê-lo, exceto a ativação de KillUserProcesses
.
Além disso, observe que esta pergunta não está relacionada às alterações em systemd-230