Come posso disabilitare completamente l'ibernazione in Kubuntu?


11

Ho visto la risposta su Come disabilitare l'ibernazione? , ma non ho questo file. Forse perché quel suggerimento è stato scritto per Ubuntu, non per Kubuntu (KDE, non per Gnome).

Io non ho uno swap sul mio SSD criptati, i miei si blocca di sistema (non si può nemmeno cambiare Caps Lock) se si preme accidentalmente il tasto "Sospensione" in "Gestione energetica". La mia tastiera ha un pulsante Sospensione ( Fn+ F4) accanto ai pulsanti di controllo del volume e ogni volta che premo il tasto sbagliato, il sistema si bloccherà dopo.

Quindi, qual è il modo corretto per disabilitarlo? Se non esiste una soluzione, è gradita anche una soluzione.


+1 Questa (e disabilitazione della sospensione) è una domanda molto importante per chiunque esegua le unità OCZ Vertex2 ... suspend / hibernate può cancellare immediatamente l'unità senza la speranza di recuperare un singolo byte. :(
Russ

Risposte:


6

Trigger per l'ibernazione:

  • Premere il pulsante Ibernazione in Kickoff -> Lascia -> Ibernazione
  • Premere Ibernazione sull'icona Energia nella barra delle applicazioni
  • Invia un segnale dbus: qdbus org.kde.kded /modules/powerdevil suspend 4

Quando viene attivato l'ibernazione, questo è il flusso di esecuzione:

  1. /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux è chiamato
  2. /usr/sbin/pm-hibernate viene chiamato con alcuni argomenti
  3. La registrazione inizia a /var/log/pm-suspend.log
  4. I ganci vengono eseguiti per preparare l'ibernazione. Questi hook si trovano in /usr/lib/pm-utils/sleep.d/e /etc/pm/sleep.d, e ordinati per nome (prima i numeri)
  5. performing hibernate è scritto nel registro
  6. do_hibernateViene chiamata la funzione shell , che indica al sistema di ibernare
  7. Quando il sistema riprende, gli hook vengono eseguiti per il ripristino dall'ibernazione
  8. Il sistema è di nuovo in esecuzione

Per disabilitare l'ibernazione, crea /etc/pm/sleep.d/000no-hibernationcon il contenuto successivo:

#!/bin/sh
# prevents hibernation
. "$PM_FUNCTIONS"
[ "$1" = "hibernate" ] && inhibit || true

Come 000no-hibernationviene chiamato prima di script come 00logging(moduli di output e informazioni sulla memoria nel registro), nessuna applicazione o modulo viene interrotto o scaricato. Questo nome è stato ispirato /usr/lib/pm-utils/sleep.d/000kernel-change. Attenzione al bug # 665651 che rende i valori di ritorno diversi da zero degli hook non riescono ad annullare la sospensione o l'ibernazione.

Questo risolve il problema dell'ibernazione per me. Anche se lo schermo si blocca, posso convivere con questo. È molto meglio rispetto a un sistema in crash.


Ho aggiunto || trueper impedire un codice di uscita diverso da zero, che impedisce la sospensione. Testato per funzionare per sospendere e bloccare l'ibernazione.
Lekensteyn,

Bella risposta! Molto approfondito .. Grazie per aver pubblicato quello che hai trovato. Estendendolo, questo script (dalla segnalazione di bug che hai collegato) arresta in modo pulito sia l'ibernazione che la sospensione. Editing per fare solo uno di questi è anche banale.
Russ,
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.