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.