Wie kann ich den Ruhezustand in Kubuntu vollständig deaktivieren?

11

Ich habe die Antwort zum Deaktivieren des Ruhezustands gesehen. , aber ich habe keine solche Datei. Möglicherweise, weil dieser Vorschlag für Ubuntu geschrieben wurde, nicht für Kubuntu (KDE, nicht Gnome).

Ich habe keinen Swap auf meiner verschlüsselten SSD, mein System friert ein (kann die Feststelltaste nicht einmal ändern), wenn ich versehentlich die Schaltfläche "Ruhezustand" bei "Energiemanagement" drücke. Meine Tastatur hat eine Hibernate-Taste ( Fn+ F4) neben den Lautstärkeregler-Tasten. Jedes Mal, wenn ich die falsche Taste drücke, friert das System danach ein.

Was ist der richtige Weg, um es zu deaktivieren? Wenn es keine Lösung gibt, ist auch eine Umgehung willkommen.

Lekensteyn
quelle
+1 Dies (und das Deaktivieren von Suspend) ist eine sehr wichtige Frage für alle, die OCZ Vertex2-Laufwerke ausführen. Suspend / Hibernate kann das Laufwerk sofort löschen, ohne die Hoffnung zu haben, ein einzelnes Byte wiederherzustellen. :(
Russ

Antworten:

6

Auslöser für den Ruhezustand:

  • Drücken Sie die Taste Hibernate in Kickoff -> Leave -> Hibernate
  • Drücken Sie im Energiesymbol in der Taskleiste auf Ruhezustand
  • Senden Sie ein dbus-Signal: qdbus org.kde.kded /modules/powerdevil suspend 4

Wenn der Ruhezustand ausgelöst wird, ist dies der Ausführungsablauf:

  1. /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux wird genannt
  2. /usr/sbin/pm-hibernate wird mit einigen Argumenten aufgerufen
  3. Die Protokollierung beginnt zu /var/log/pm-suspend.log
  4. Hooks werden ausgeführt, um den Ruhezustand vorzubereiten. Diese Haken befinden sich bei /usr/lib/pm-utils/sleep.d/und /etc/pm/sleep.dund sind nach Namen sortiert (Nummern zuerst).
  5. performing hibernate wird in das Protokoll geschrieben
  6. Die Shell-Funktion do_hibernatewird aufgerufen und weist das System an, den Ruhezustand zu aktivieren
  7. Wenn das System fortgesetzt wird, werden Hooks ausgeführt, um den Ruhezustand wiederherzustellen
  8. Das System läuft wieder

Um den Ruhezustand zu deaktivieren, erstellen Sie /etc/pm/sleep.d/000no-hibernationmit dem nächsten Inhalt:

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

Wie 000no-hibernationvor Skripten wie 00logging(gibt Module und Speicherinformationen im Protokoll aus) aufgerufen wird , werden keine Anwendungen oder Module unterbrochen oder entladen. Dieser Name wurde inspiriert von /usr/lib/pm-utils/sleep.d/000kernel-change. Vorsicht vor Fehler # 665651 , die nicht Null Rückgabewerte macht den Haken nicht abbrechen suspendieren oder Ruhezustand.

Dies behebt das Problem mit dem Ruhezustand für mich. Obwohl der Bildschirm gesperrt wird, kann ich damit leben. Es ist viel besser als ein abstürzendes System.

Lekensteyn
quelle
Ich habe hinzugefügt || true, um einen Exitcode ungleich Null zu verhindern, der das Anhalten verhindert. Getestet, um den Ruhezustand auszusetzen und zu blockieren.
Lekensteyn
Gute Antwort! Sehr gründlich. Vielen Dank für die Veröffentlichung, was Sie gefunden haben. Erweitern Sie darauf dieses Skript (aus dem Fehlerbericht Sie verknüpfen) sauber hält sowohl Hibernate und Suspend. Das Bearbeiten, um nur einen von ihnen auszuführen, ist ebenfalls trivial.
Russ