Come posso capire perché la sospensione a volte fallisce?


17

Qualcosa sta causando l'interruzione della sospensione occasionalmente. Quando si blocca, il sistema si blocca con uno schermo nero e rimane acceso, senza sospendere. Questo mi obbliga a tenere premuto il pulsante di accensione fino allo spegnimento del sistema.

Una differenza di impostazione che ho dalla maggior parte delle persone è che non uso l'opzione che ti consente di sospendere quando il coperchio del laptop è chiuso. Quindi aprire e chiudere il coperchio del laptop non ha azioni. Mi piace premere sospendi manualmente. Questa modifica delle preferenze potrebbe essere la causa?

Come posso iniziare a cercare cosa sta causando l'incidente, poiché l'incidente non visualizza errori?

Risposte:



17

Non penso che l'impostazione che menzioni abbia qualcosa a che fare con esso.

Controlla /var/log/pm-suspend.loge vedi se dà qualche suggerimento.

Questi problemi sono generalmente dovuti ad alcuni processi che impediscono la sospensione del sistema.

Fare

dmesg -T|grep Freez -A4

e cerca queste voci:

--
[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
--

Controlla i timestamp per vedere quali dei problemi segnalati si riferiscono al tuo tentativo di sospendere. In questo caso, è mount.nfsche sta causando i problemi.

Ora, inserisci uno script /etc/pm/sleep.d/, gli script lì verranno eseguiti alla sospensione e al riavvio. Il nome del file dovrebbe iniziare con un numero d'ordine, 00-49 per gli script utente (per maggiori dettagli, vedere man pm-suspend).

La sceneggiatura potrebbe apparire così

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

con voci corrispondenti per altri processi che hanno causato problemi, se presenti.

Parentesi ed exit 0è un trucco: se il processo non viene trovato, killalluscirà con il codice di uscita 1, che annullerà l'intera sospensione. Quanto sopra verrà eseguito killallin una sotto-shell che uscirà con 0.

In caso di problemi, verificare /var/log/pm-suspend.logche registrerà il tentativo di sospendere ed eseguire lo script.


Avevo anche bisogno di un'altra riga: (killall -9 mount.nfs; exit 0) perché a volte non funziona solo con SIGUP.
Juanin,

@Juanin: -9è meglio, non so perché avevo solo -1in primo luogo, è stato modificato ora.
Carl,

Mi chiedo quale percentuale di volte il problema sia un montaggio in rete live (come mostrato qui). Anche questo era il mio problema, ma lo era sshfsinvece nfs.
nobar,

Se esiste più di un'attività che si rifiuta di congelare, potrebbe essere correlata a questo errore: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1676912
mhellmeier

Questo metodo funziona anche in Ubuntu 18.04 .. ??
Ramesh-X,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.