ubuntuusers.de

Bereitschaft

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Dieser Artikel konkretisiert einen Teil der Übersicht „Schlafender Rechner“[1].

Im Modus Bereitschaft (von dem es etliche Varianten gibt) ist der Zustand eines laufenden Systems eingefroren, und die CPU des Rechners arbeitet nicht. Möglicherweise sind auch Peripheriegeräte ausgeschaltet, aber der Arbeitsspeicher wird mit Energie versorgt und somit bleibt das vorläufige Arbeitsergebnis erhalten. Nach einem erneuten Einschalten des Rechners wird der vorherige Zustand 1:1 wiederhergestellt inklusive allen geöffneten Fenstern und laufenden Programmen.

Andere Begriffe sind Schlaf (im Sinne von Schlummern, nicht Tiefschlaf), Suspend (deutsch: Unterbrechung) oder Suspend-to-RAM (in etwa: „den Betrieb vorübergehend unterbrechen, und den Zustand im Arbeitsspeicher erhalten“). Auch die Bezeichnung Standby wird in diesem Zusammenhang verwendet und oft auch falsch verwendet; Standby ist ursprünglich eine von vier für ACPI definierten technisch unterscheidbaren Schlafzustanden (S1, S2, S3, S4), inzwischen eine Familie von Realisierungen des Modus Bereitschaft mit höchst unterschiedlichen Eigenschaften.

Im Gegensatz zum Modus Ruhezustand (englisch: Suspend-to-Disk) wird im Modus Bereitschaft Energie benötigt.

Installation

Es ist in der Regel nichts zu installieren. Die Funktionalitäten zum „System schlafen legen“ und „System aufwecken“ gehören zum Linux Kernel und sind in Ubuntu Kerneln auch aktiviert. Man kann es über eine zum Kernel gehörende Low-Level-Schnittstelle bedienen oder über eine High-Level Schnittstelle des Init-Systems systemd. Auch in jeder Desktop-Umgebung gibt es eine standardmäßig installierte mindestens teilweise Unterstützung zur Bedienung.

Die vielen verfügbaren erweiterten Bedienoberflächen können in diesem Artikel nicht alle behandelt werden, siehe GUI und hier für Hinweise.

Varianten der Bereitschaft

Gemäß der Übersicht[1] bietet der Linux Kernel – abhängig von den Möglichkeiten der vorliegenden Hardware – bis zu drei verschiedene Arten von Bereitschaft an. Man kann diese im Terminal[2] abfragen:

grep '' /sys/power/{state,mem_sleep} 

Beispielausgabe:

/sys/power/state:freeze mem disk
/sys/power/mem_sleep:s2idle [deep]
Tabelle 1: Mögliche Varianten für Bereitschaft
Wort in Möglicher Schlafzustand
state mem_sleep
freeze Entweder: S0-idle → Einfrieren
Oder: S0ix → Modernes Standby
s2idle
standby S1 → Klassisches Standby
shallow
mem der in /sys/power/mem_sleep ausgewählte (d.h. in Klammern „[ ]“ stehende) Zustand
deep S3 → Suspend-to-RAM
disk S4, nach der in /sys/power/disk ausgewählten Methode.
Das ist keine Bereitschaft im Sinne dieses Artikels, sondern die Alternative Suspend-to-Disk.

⚓︎

Einfrieren

Dieser auch Suspend-to-Idle genannte Zustand ist einer von zwei möglichen Ergebnissen (der andere ist „Modernes Standby“), wenn man in der Schnittstelle des Kernels die Parameter freeze oder s2idle anwendet.

⚓︎ Die einzige Möglichkeit, diese Schlafvariante statt modernem Standby zu bekommen, besteht im Kauf von Hardware, die die neue Technik modernes Standby nicht beherrscht:

  • CPUs vor 2017 beherrschen modernes Standby nicht und der Linux Kernel bietet dann seine interne Variante des Einfrierens an.

  • Intel Core vor Generation 12 beherrschen S3, bei Generation 12 und später beherrschen es einige, andere nicht. Der Zustand S3 hat zunächst technisch nichts mit dem Einfrieren zu tun, aber da das moderne Standby (= S0ix) von den Herstellern als Ersatz für S3 gesehen wird, ist ein Fehlen von S3 ein starkes Indiz für die Beherrschung von S0ix, welches dann vom Kernel vor dem Einfrieren bevorzugt wird.

  • AMD Ryzen vor 6000 beherrschen modernes Standby nicht und ermöglichen damit Einfrieren.

  • Die Firmware muss Einfrieren aber auch unterstützen, indem sie dem Kernel S0ix nicht anbietet.

Dies ist ein sehr leichter Schlaf. Im Grunde wurde nur die CPU angehalten und wartet darauf, wieder geweckt zu werden um weiter zu arbeiten. CPUs, Arbeitsspeicher und Peripheriegeräte verbrauchen weiterhin Energie, lediglich die CPU etwas weniger als im Arbeitszustand. Einschlafen und Aufwachen sind schneller als bei allen anderen Varianten.

⚓︎

Modernes Standby

Dieser auch Runtime-Idle genannte Zustand ist einer von zwei möglichen Ergebnissen (der andere ist „Einfrieren“), wenn man in der Schnittstelle des Kernels die Parameter freeze oder s2idle anwendet.

Dies ist ziemlich tiefer Schlaf. Möglicherweise wird vergleichbar viel wie beim Suspend-to-RAM oder sogar mehr Energie eingespart. CPUs und Peripheriegeräte sind abgeschaltet oder in tiefen Schlafzuständen. Zustandswechsel erfolgen aber rascher als bei Suspend-to-RAM.

Bei moderner Hardware kann dieses eine vernünftige Alternative zu S3 sein, weil anscheinend manche Hersteller sich bei der Implementierung von S0ix mehr Mühe geben.

⚓︎ Die einzige Möglichkeit, diese Schlafvariante statt simplem Einfrieren zu bekommen, besteht im Kauf von Hardware, die diese moderne Technik beherrscht:

  • Man benötigt eine nicht zu alte CPU.

  • Vor 2017 gefertigte CPUs beherrschen es sicher nicht.

  • Aussichtsreich sind CPUs von Intel ab Core Generation 8 (ab Mitte 2017) und CPUs von AMD ab Ryzen Generation 2 (ab 2018).

  • Man benötigt eine Firmware mit einem ACPI-Bios ab Version 6.2.

⚓︎

Klassisches Standby

Diese Variante ist sehr selten in der Hardware realisiert und steht daher meistens nicht zur Verfügung. Wenn sie verfügbar ist, erreicht man den Zustand S1, indem man in der Schnittstelle des Kernels die Parameter standby oder shallow anwendet. Die Energieeinsparung ist besser als beim Einfrieren, aber schlechter als beim modernen Standby oder Suspend-to-RAM.

⚓︎

Suspend-to-RAM

Den Zustand S3 erreicht man durch Anwendung von deep in der Schnittstelle des Kernels. Dies ist die früher bevorzugte Variante, bei der der Kernel aber Unterstützung durch die Firmware benötigt. Bei moderner Hardware ist die Implementierung von Suspend-to-RAM in der Firmware des Rechners oft fehlerhaft, wodurch in der Praxis manchmal zu Hängern beim Übergang in den Schlafzustand kommen kann oder zum Flackern des Bildschirms beim Aufwachen.

Die Energieeinsparung ist besser als bei den vorher genannten Methoden und wird nur noch vom Ruhezustand übertroffen. Die Zustandswechsel dauern zuweilen einige Sekunden, erfolgen aber in der Regel praxistauglich rasch.

Bei moderner Hardware mit Unterstützung des modernen Standbys kann dieses eine vernünftige Alternative sein.

Die Hersteller tendieren dazu, in der Firmware Suspend-to-RAM nicht mehr zu unterstützen zu Gunsten von modernem Standby. Intel unterstützt seit Generation 11 den Zustand S3 nicht mehr offiziell und seit Generation 12 auch in einigen CPUs (Reihen P und U) tatsächlich nicht mehr. AMD unterstützt S3 ab Ryzen 6000 offiziell nicht mehr. Wenn Suspend-to-RAM und modernes Standby beide vom Hersteller unterstützt werden, wird (Stand: 2024) in der Regel modernes Standby favorisiert und Suspend-to-RAM manchmal als "legacy Standby" bezeichnet.

Alternativen zur Bereitschaft

⚓︎

Suspend-to-Disk

Dies ist ein weiterer Schlafzustand, der aber nicht als Bereitschaft gilt, sondern im Artikel Ruhezustand behandelt wird. Die Energieeinsparung, aber auch die Wartezeiten beim Zustandswechsel, sind maximal.

⚓︎

Ausschalten

Das kann durchaus eine des Bedenkens würdige Alternative zur Nutzung eines Schlafzustandes sein. Zwar muss man natürlich bei dieser Strategie seine Arbeit vorher selbst sichern, was aber gerade bei wichtigen und umfangreichen Arbeitsergebnissen ohnehin ratsam ist. Die Energieeinsparung ist maximal und die Wartezeiten sind geringer als bei Suspend-to-Disk.

Auswahlkriterien

Dem Anwender bleibt die Qual der Wahl der für die eigenen Zwecke am besten geeigneten Variante und auf diese Frage gibt es keine allgemein gültige Antwort.

Tabelle 2: Vergleich der Varianten
Kriterium Reihenfolge
(lies „>“ als „besser als“ und „|“ als „oder“)
Energieeinsparung S5 | S4 > S0ix > S3 > S1 > S0-idle
schnellste Reaktion beim Einschlafen S0-idle > S0ix | S1 | S3 > S4
schnellste Reaktion beim Aufwachen S0-idle > S0ix > S1 > S3 > S5 > S4 (Booten ist schneller als Aufwachen aus S4!)
beste Datensicherheit S5 > S4 > S0-idle | S0ix | S1 | S3

Die individuelle Gewichtung und Formulierung weiterer Kriterien sei als Übungsaufgabe dem Leser überlassen.

Wenn man nicht weiß, ob der eigene Rechner S0ix oder S0-idle realisiert, kann man mit dem Skript Schlaflabor den Energieverbrauch in Bereitschaft messen. Danach weiß man zwar noch immer nicht, was realisiert ist, hat aber gute Anhaltspunkte, ob man selber lieber S0-ix/S0-idle oder S3 verwenden sollte.

Benutzung

Zum Einschlafen, also Wechsel aus dem Arbeitszustand in die Bereitschaft, kann man alternativ die folgend beschriebenen Schnittstellen benutzen.

Low-Level-Schnittstelle

Man benutzt diese Schnittstelle vor allem zum Testen. Eine ordnungsgemäße Funktion der gewünschten Vorgänge auf dieser Ebene ist Voraussetzung zur Nutzung der High-Level-Schnittstelle und Bedienung über die GUI.

Die Schnittstelle des Kernels bedient man im Terminal[2] und benötigt dafür erweiterte Rechte[3]. Es gibt zwei Methoden zum Übergang in den Schlafzustand:

  1. Bei der ersten Methode schreibt man das Kennwort für den gewünschten Zustand in die Datei /sys/power/state, siehe Tabelle 3.

  2. Bei der zweiten Methode

    • wählt man ggf. zuerst den gewünschten Zustand durch Schreiben in die Datei /sys/power/mem_sleep aus, siehe Tabelle 4

    • und stößt dann das Einschlafen durch Schreiben von mem in die Datei /sys/power/state an.

Tabelle 3: Einschlafen auf Befehl, Methode 1
Zustand Bedingung Befehl
Einfrieren CPU vor 2017
echo freeze | sudo tee /sys/power/state 
Modernes Standby moderne Hardware
Klassisches Standby
echo standby | sudo tee /sys/power/state 
Tabelle 4: Einschlafen auf Befehl, Methode 2
Zustand Bedingung erster Befehl: Variante auswählen
Einfrieren CPU vor 2017
echo s2idle | sudo tee /sys/power/mem_sleep 
Modernes Standby moderne Hardware
Klassisches Standby
echo shallow | sudo tee /sys/power/mem_sleep 
Suspend-to-RAM
echo deep | sudo tee /sys/power/mem_sleep 
Ruhezustand Auswahl der Methode siehe Artikel Ruhezustand
zweiter Befehl: Übergang auslösen
Bereitschaft gemäß erstem Befehl
echo mem | sudo tee /sys/power/state 
Ruhezustand
echo disk | sudo tee /sys/power/state 

Man kann mit dieser Schnittstelle auch den Rechner Herunterfahren oder neu Booten.

High-Level-Schnittstelle

Die Funktion dieser Schnittstelle ist Voraussetzung für eine Bedienung per GUI.

Diese Schnittstelle für die Kommandozeile[2] benutzt die Komponente systemd-sleep mit dem Dienstprogramm systemctl für Zustandswechsel.

Der Befehl

systemctl suspend 

lässt den Rechner einschlafen. Was suspend genau bedeutet, steht in den Konfigurationsdateien von systemd-sleep in Form von Schlüsselworten für die vorstehend beschriebene Schnittstelle des Kernels.

Alternativ kann man auch anstatt suspend auch mit hybrid-sleep oder suspend-then-hibernate eine Kombination von Bereitschaft mit dem Ruhezustand ansteuern. Das setzt voraus, dass man den Ruhezustand funktionsfähig eingerichtet hat.

GUI

Der Übergang vom Arbeitszustand in die Bereitschaft kann als Reaktion auf mehrere Ereignisse erfolgen:

  • Der Benutzer betätigt manuell ein Bedienelement:

    • Hardware Ein-/Austaster

    • Spezialtaste in manchen Tastaturen, bei Laptops auch Kombination mit der Taste Fn

    • Schaltfläche in einem Bediendialog

  • Der Benutzer klappt den Laptop zu. Auch dabei wird in der Hardware ein Schalter ("lid close switch") betätigt.

  • Der Benutzer macht für einen einstellbaren Zeitraum keinen Bedieneingriff.

  • Im Batteriebetrieb unterschreitet der Ladezustand des Akku eine einstellbare Schwelle.

In der GUI sind diese Vorgänge teilweise einstellbar und parametrierbar. Man findet z.B. bei Gnome manche Einstellungen unter Energie und man suche in den Einstellungen nach Stichworten wie beispielsweise Energieeinsparung, Bereitschaft, Einschaltknopf.

Nicht alles, was möglich ist, ist aber über die GUI erreichbar. Manche Einstellung muss man direkt im Konfigurationssystem GSettings (welches die Datenbank dconf 🇬🇧 benutzt) vornehmen. Dies kann man bei auf Gtk aufbauenden Desktops mit Hilfe des grafischen Werkzeugs dconf-editor (der aber erst installiert werden muss und auf unterer Ebene arbeitet) erledigen oder auf der Kommandozeile[2] mit dem Befehl gsettings.

Hardware Ein-/Austaster

Was bei Betätigung des Hardwaretasters geschehen soll, fragt man so aus GSettings ab:

gsettings list-recursively | grep power-button 

Beispielausgabe:

org.gnome.settings-daemon.plugins.power power-button-action 'interactive' 

⚓︎ Die Befehle describe und range verraten, was der Schlüssel (hier beispielhaft: power-button-action) tun soll und welche Werte zulässig sind:

gsettings describe org.gnome.settings-daemon.plugins.power power-button-action
gsettings range org.gnome.settings-daemon.plugins.power power-button-action 

und set ändert den Wert des Schlüssels:

gsettings set org.gnome.settings-daemon.plugins.power power-button-action suspend 

Bei Betätigung des Bedienelements geschieht nun das, was auch systemctl suspend über die High-Level-Schnittstelle tun würde.

Lid-close

Die für das Zuklappen des Laptops zuständigen Schlüssel findet man so:

gsettings list-recursively | grep lid-close 

Beispielausgabe:

org.gnome.settings-daemon.plugins.power lid-close-ac-action 'suspend'
org.gnome.settings-daemon.plugins.power lid-close-battery-action 'suspend'
org.gnome.settings-daemon.plugins.power lid-close-suspend-with-external-monitor false

Man hat hier also mehrere Schlüssel und kann für die Situationen Netzbetrieb, Akkubetrieb und angeschlossenem externem Monitor unterschiedliches Verhalten programmieren, analog wie oben.

Allerdings werden bei Gnome diese Schlüssel ignoriert und man setzt sie am besten auf nothing. Das Verhalten beim Schließen des Laptops ist in einer Konfigurationsdatei für den Login-Manager systemd-logind zu konfigurieren.

Timeout

Der Befehl

gsettings list-recursively | grep idle 

zeigt die Schlüssel zur Parametrierung des Bildschirmschoners bzw. Abdunkelung des Displays. Das ist keine Bereitschaft, aber die Wartezeit bis zu einem automatischen Übergang in Bereitschaft sollte größer als der Wert für idle-delay sein, oder man sollte Bildschirmschoner und Abdunkelung/Abschaltung des Displays deaktivieren.

Die Einstellmöglichkeiten für den nach Wartezeit automatischen Übergang in Bereitschaft zeigt der Befehl:

gsettings list-recursively | grep inactive 

Beispielausgabe:

org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 3600
org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 900
org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'suspend'

Auch hier kann man für Netz- und Akkubetrieb unterschiedliche Zeiten für die andauernde Untätigkeit in Sekunden und Maßnahmen festlegen.

Akku leer

Es gibt drei Schwellen, die jedoch nicht von der Desktopumgebung, sondern vom Energiemanager UPower verwaltet werden. Einige Desktopumgebungen haben ein Plugin zur Kommunikation mit dem Energiemanager. Bei Gnome werden vom Energiemanager empfangene Nachrichten vom Benachrichtigungsdienst und in den Einstellungen für Energie angezeigt, man kann sich zusätzlich auch den aktuellen Ladezustand im Panel anzeigen lassen:

gsettings list-recursively | grep battery-percentage 

Die drei Schwellen sind in der Konfigurationsdatei /etc/UPower/UPower.conf des Energiemanagers einstellbar.

  • Unterhalb der höchsten Schwelle schaltet die Desktopumgebung automatisch in einen Energiesparmodus, der rein auf Softwarebasis funktioniert. Dieses Verhalten kann man mit dem Schlüssel power-saver-profile-on-low-battery ausschalten.

  • Unterhalb der niedrigsten Schwelle ergreift der Energiemanager eine Notmaßnahme, um Datenverlust und Schädigung des Akku durch Tiefentladung zu vermeiden. Die Art der Notmaßnahme kann man in der GUI nicht einstellen, aber in der Konfigurationsdatei des Energiemanagers – die Standardeinstellung ist „erste erfolgreiche Aktion aus hybrid-sleep oder hibernate oder power-off“, also eine Kombination von Bereitschaft mit dem Ruhezustand. Da letzterer bei Ubuntu standardmäßig gesperrt ist, muss man entweder beim Energienotstand ein abgefragtes Passwort eingeben oder vorher den Ruhezustand gängiger machen.

Einrichtung

Der Artikel Desktop-Dateien/Beispiele/Einschlafen beschreibt eine Desktop-Datei, mit der man selbst die in diesem Abschnitt vorgestellten (und weitere) Befehle an systemd in die GUI integrieren kann.

Wer auf Mausklick-Orgien verzichten will, kann sich einfach für seine bevorzugte Variante der Bereitschaft bzw. dem entsprechenden Befehl eine Tastenkombination definieren. Z.B. bei Gnome:
System-Menü (oben rechts) → Einstellungen (z.B. Getriebe oder Zahnrad) → Tastatur → Tastenkombinationen

Alternativ findet man auf https://extensions.gnome.org 🇬🇧 mit dem Suchbegriff "Suspend" einige Erweiterungen. Erweiterungen funktionieren oft nur mit bestimmten Versionen der Gnome-Shell. → GNOME Shell/Extensions (Abschnitt „extensions-gnome-org“)

Schließlich gibt es noch das Paket qshutdown, welches allerdings nicht Gtk, sondern Qt benutzt und vorwiegend für Kubuntu eine Alternative darstellt.

Alle genannten Bedienoberflächen sind reine Bedienoberflächen und machen unter der Haube nichts außer systemd zu beauftragen. Wenn es mit den oben genannten Befehlen nicht funktioniert, wird das durch eine GUI nicht besser.

Bedienung

System schlafen legen

Nach Betätigung des ausgesuchten Bedienelements oder automatisch bei fast entladenem Akku sollte der Rechner nun in Bereitschaft gehen. Wenn man eine Kombination aus Bereitschaft mit dem Ruhezustand verwendet, wird man möglicherweise nach einem Passwort gefragt, das kann auch geschehen, wenn mehrere Benutzer angemeldet sind oder noch weitere Sitzungen existieren.

Ein erfolgreicher Eintritt in die Bereitschaft wird in der Regel mit einem geheimnisvoll langsamen Blinken einer LED signalisiert und kann – abhängig von der konkret benutzten Variante und der konkreten Hardware – einige Sekunden dauern.

Der gesetzlich für die Bereitschaft von elektronischen Geräten im privatem Gebrauch ab 2014 geltende zulässige Energieverbrauch von maximal 0,5 W wird nicht immer realisiert.

Schlafendes System benutzen

Das ist technisch möglich, aber man sollte es nicht tun.

Details siehe Ruhezustand (Abschnitt „Schlafendes-System-benutzen“); der Abschnitt gilt ohne Einschränkung auch für Bereitschaft.

System aufwecken

Zum Wecken des System schaltet man den Rechner einfach ein, je nach Konfiguration durch Betätigung der Einschalttaste, Aufklappen des Bildschirms, automatisch durch den Wecker in der Firmware, etc.

Eventuell muss man durch Passworteingabe den Sperrbildschirm des Bildschirmschoners überwinden, wenn man das so eingestellt hat. Man kann weiterarbeiten, als hätte es keinen Schlaf gegeben.

Extern

Diese Revision wurde am 18. März 2025 17:28 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Suspend, Hardware, Bereitschaft