execução de script após o logout

1

Eu usei este logout e suspendo o script, vinculado a um atalho de teclado no Debian Jessie com a área de trabalho do Gnome:

#!/bin/bash
{ sleep 8; sudo systemctl suspend; } & 
gnome-session-quit --logout --no-prompt

Agora, com o Stretch, isso não funciona mais. Um teste rápido revelou que o comando após o sono nunca é executado (substituí a parte suspensa por um comando touch). Alguém tem uma ideia do porquê? O que poderia ter mudado entre o Debian 8 e 9 ou entre o Gnome 3.16 e 3.22? Qualquer maneira recomendada de contornar isso?

    
por g.kertesz 09.08.2017 / 16:02

1 resposta

0

Respondendo minha própria pergunta aqui, como eu poderia ter encontrado o culpado.

Minha instalação do Debian 9 possui a versão 232. do systemd. Embora o changelog systemd tenha sido o que eu encontrei para a versão 230, datada de maio de 2016:

systemd-logind will now by default terminate user processes that are part of the user session scope unit (session-XX.scope) when the user logs out. This behavior is controlled by the KillUserProcesses= setting in logind.conf, and the previous default of "no" is now changed to "yes". This means that user sessions will be properly cleaned up after, but additional steps are necessary to allowintentionally long-running processes to survive logout (...)

A correção mais fácil parece ser aplicar nohup como @DopeGhoti sugerido no comentário.

    
por 12.08.2017 / 19:56