Como posso descobrir por que o Suspend às vezes falha?

17

Algo está causando uma falha de suspensão ocasionalmente. Quando falha, o sistema congela com uma tela preta e permanece ligado, sem suspensão. Isso me faz ter que segurar o botão liga / desliga até o sistema desligar.

Uma diferença de configuração que tenho da maioria das pessoas é que não uso a opção que permite suspender quando a tampa do laptop está fechada. Portanto, abrir e fechar a tampa do laptop não tem ação. Eu gosto de pressionar suspender manualmente. Essa mudança de preferência poderia ser a causa?

Como posso começar a procurar o que está causando a falha, já que a falha não exibe erros?

Isaac
fonte

Respostas:

17

Eu não acho que a definição que você mencionou tenha algo a ver com isso.

Verifique /var/log/pm-suspend.loge veja se há alguma dica.

Esses problemas geralmente ocorrem devido a alguns processos que impedem a suspensão do sistema.

Faz

dmesg -T|grep Freez -A4

e procure estas entradas:

--
[sun mar  3 15:19:48 2013] Freezing user space processes ... 
[sun mar  3 15:20:08 2013] Freezing of tasks failed after 20.01 seconds (3 tasks refusing to freeze, wq_busy=0):
[sun mar  3 15:20:08 2013] mount.nfs       D e8631aa0     0  5518   5517 0x00800004
[sun mar  3 15:20:08 2013]  e8631b10 00000086 f7bc0e00 e8631aa0 c1053cb4 c1809020 c192ee00 c192ee00
--

Verifique os carimbos de hora para ver quais dos problemas relatados estão relacionados à sua tentativa de suspensão. Nesse caso, é isso mount.nfsque está causando os problemas.

Agora, coloque um script em /etc/pm/sleep.d/ , os scripts serão executados em suspender e continuar. O nome do arquivo deve começar com um número para pedido, 00-49, para scripts do usuário (para obter mais detalhes, consulte man pm-suspend).

O script pode ficar assim

#!/bin/sh
(killall -9 mount.nfs; exit 0)

com entradas correspondentes para outros processos que causaram problemas, se houver.

Parênteses e exit 0é um truque: se o processo não for encontrado,killall sairá com o código de saída 1, que cancelará toda a suspensão. O acima será executado killallem um sub-shell que sairá com 0.

Se você estiver tendo problemas, verifique /var/log/pm-suspend.logse a tentativa de suspender e executar o script é registrada.

Carl
fonte
Eu também precisava de outra linha: (killall -9 mount.nfs; saída 0) porque às vezes não funciona apenas com o SIGUP.
Juanin
@ Juanin: -9é melhor, eu não sei por que eu tinha apenas -1em primeiro lugar, é editado agora.
20414 Carl
Gostaria de saber qual a porcentagem de tempo em que o problema é uma montagem de rede ao vivo (como mostrado aqui). Esse também era meu problema - mas era em sshfsvez de nfs.
Nobar
Se houver mais do que uma recusa tarefa para congelá-lo pode estar relacionado a este erro: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1676912
mhellmeier
Este método está funcionando no Ubuntu 18.04 também .. ??
Ramesh-X