Estou tentando obter um desligamento / reinicialização normal do ArchLinux com o GNOME Shell. Agora, quando eu peço o desligamento, ele é imediatamente desligado sem dar tempo aos programas abertos para fechar / salvar arquivos abertos normalmente. Como resultado, sempre que eu reinicio o Chrome (por exemplo), ele diz que a sessão não foi fechada corretamente etc. Ao ler na Web, aprendi que o sistema estava desligando os processos, ele primeiro enviou um SIGTERM
seguido por SIGKILL
se o processo não fosse fechado dentro de um determinado tempo limite. No entanto, percebo que no meu sistema SIGKILL
é enviado imediatamente depois SIGTERM
e acho que essa é a causa de um encerramento não normal dos programas.
Encontrei alguma documentação que (se a ler corretamente) indica que o tempo limite antes do envio SIGKILL
pode ser definido por TimeoutStopSec=
opção. Também o envio SIGKILL
também pode ser desativado por SendSIGKILL=
opção. Mas não consigo encontrar onde configurar essas opções ... existe um arquivo de configurações de desligamento / reinicialização do systemd onde eu possa definir essas opções?
EDITAR:
Fiz alguns testes e descobri duas coisas interessantes:
- Se eu fechar manualmente o chrome assim
killall -SIGTERM chrome
, ele não reclamará que não foi fechado corretamente na próxima vez em que o reiniciar. Se eu fechar assimkillall -SIGKILL chrome
, ele reclamará. Isso me diz que o chrome está manipulando o SIGTERM corretamente. - Observando a saída do meu procedimento de desligamento, o systemd imprime
Sending SIGTERM...
imediatamente seguido porSending SIGKILL...
De acordo com o comentário abaixo, o systemd está lidando apenas com seus processos. Então, no meu caso, GDM. Isso me diz que o problema poderia ser:
- o GDM não está fechando seus processos filhos (por exemplo, Chrome) corretamente (por exemplo, enviando o SIGTERM para eles)
- ou o systemd está enviando uma mensagem SIGKILL para o GDM com antecedência, não dando tempo para fechar corretamente seus filhos.
Existe uma maneira de verificar / configurar como o GDM realmente fecha seus filhos?
systemd's
controle - systemd
é pid 1
- mas os executivos do Chrome saem de seu script de wrapper em uma subcamação e invocam os processos filhos posteriormente. Ainda assim, ele fará o que for necessário zygotes
, desde que seu sistema esteja configurado corretamente. Você está usando uma dessas soluções de espaço temporário para o Chrome que você encontrará recomendadas no wiki do Arch?
gnome-session
.