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

9

Algo está causando a suspensão do acidente ocasionalmente. Quando ele falha, o sistema congela com uma tela preta e permanece ligado, não suspendendo. Isso me faz ter que segurar o botão de energia até que o sistema seja desligado.

Uma diferença de configuração que eu tenho na maioria das pessoas é que não uso a opção que permite suspender quando a tampa do laptop é fechada. Então, abrir e fechar a tampa do laptop não tem ações. 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, pois a falha não exibe erros?

    
por Isaac 30.06.2012 / 22:26

2 respostas

4

Não, desabilitar a função "suspender na tampa fechada" não pode afetar a suspensão manual.

Você começaria observando a saída de dmesg e o conteúdo de /var/log/kern.log e /var/log/syslog de dicas.

Podemos tentar ajudar se você compartilhar isso conosco. Veja esta pergunta para saber como:

  

Como posso compartilhar facilmente a saída de um comando ou um arquivo de texto com outras pessoas?

    
por ish 01.07.2012 / 07:16
10

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

Verifique /var/log/pm-suspend.log e veja se dá alguma dica.

Esses problemas geralmente são causados por alguns processos que impedem que o sistema seja suspenso.

Faça

dmesg -T|grep Freez -A4

e procure por 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 suspender. Nesse caso, é mount.nfs que está causando os problemas.

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

O script pode ter esta aparência

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

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

Parêntese e exit 0 é um truque: se o processo não for encontrado, killall sairá com o código de saída 1, que cancelará a suspensão inteira. O acima irá executar killall em um sub-shell que sairá com 0.

Se você estiver com problemas, verifique /var/log/pm-suspend.log que registrará a tentativa de suspender e executar seu script.

    
por Carl 03.03.2013 / 18:21

Tags