systemd não tenta parar (alguns) processos no término da sessão

3

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

    
por sammko 18.07.2016 / 14:07

0 respostas