Zum Inhalt springen

SysRQ

Aus wiki.archlinux.de

Jeder wird schon Mal erlebt haben, obwohl Linux sehr stabil läuft, dass sich das System vollkommen aufgehängt hat. All zu voreilig wird die Reset-Taste gedrückt, und Datenverlust riskiert.

Es gibt eine Lösung, die es erlaubt, das System sauber herunterzufahren. Im Kernel wird dafür die Option SysRQ verwendet. SysRQ ist eine "magische" Tastenkonfiguration, welche weiter unten näher beschrieben wird.

Zunächst muss SysRQ aktiviert werden. Dazu ist folgender Befehl als root auszuführen:

echo "1" > /proc/sys/kernel/sysrq

Um SysRQ dauerhaft zu aktivieren, muss die Datei /etc/sysctl.d/99-sysctl.conf editiert werden:

# Enable the magic-sysrq key
kernel.sysrq = 1

SysRQ ist auf einer Standard-Tastatur als Druck/S-Abf zu finden.

Hinweis: Auf Laptops oder Tastaturen mit Umschalttaste für Funktionstasten - Fn - ist es notwendig diese Taste auch mit zu verwenden. Also: Fn + Alt + Druck/S-Abf + Aktionstaste.

Tastenkombinationen Bedeutung
Alt + Druck/S-Abf + R nimmt X die Kontrolle über Maus und Tastatur (z. B. wenn X abgestürzt ist)
Alt + Druck/S-Abf + O System über APM niedergemacht
Alt + Druck/S-Abf + S schreibt die Daten aus dem Disk-Cache auf die Festplatte, es wird ein Sync durchgeführt
Alt + Druck/S-Abf + U umountet alle gemounteten Dateisysteme readonly
Alt + Druck/S-Abf + B reboot
Alt + Druck/S-Abf + M gibt Infos über den Speicher in der Konsole aus
Alt + Druck/S-Abf + K killt Prozesse auf dem Terminal
Alt + Druck/S-Abf + E sendet ein SIGTERM an alle Prozesse, außer Init
Alt + Druck/S-Abf + I sendet SIGKILL an alle Prozesse, außer Init
Alt + Druck/S-Abf + L sendet SIGKILL an alle Prozesse, inklusive Init

Um ein System „sauber“ herunterzufahren, kann man wie folgt vorgehen.

  • Alt + Druck/S-Abf + R (Setzt die Tastatur in raw-mode)
  • Alt + Druck/S-Abf + E (Prozesse werden sauber beendet (SIGTERM))
  • Alt + Druck/S-Abf + I (Für die widerspenstigen Prozesse, die sich nicht beenden lassen wollen (SIGKILL))
  • Alt + Druck/S-Abf + S (Daten aus dem Disk-Cache werden geschrieben (sync))
  • Alt + Druck/S-Abf + U (Hängt alle gemounteten Dateisysteme aus (umount))
  • Alt + Druck/S-Abf + B (Veranlasst einen Neustart (reboot))

Nach dem Auslösen von e sollte man den Prozessen ein paar Sekunden Zeit lassen, der Aufforderung, sich sauber zu beenden, nachzukommen.

Zu dieser Sequenz wird auch gerne die englische Eselsbrücke „Raising Elephants Is So Utterly Boring“ („Die Aufzucht von Elefanten ist absolut langweilig.“) empfohlen. Ein solches Vorgehen wird daher oft mit der Bezeichnung „raising the elephant“ umschrieben.

Austesten

Da dass Neustarten mittels SysRQ doch einige "Verrenkungen der Hände" bedarf sollte man das Vorgehen mal austesten in einer Situation, die eben nicht ein nicht mehr reagierendes System ist.

Dazu am besten alle Anwendungen schließen. Ein Terminal öffnen und die Kernel-Ringbuffer-Meldungen anzeigen lassen:

# dmesg -w    # oder sudo dmesg -w als User

Wir beginnen mit "R" in der Sequenz "REISUB". Bei korrekter Verwendung der oben angeführten Tastenkombination für "Setzt die Tastatur in raw-mode" erscheint in der dmesg-Ausgabe:

sysrq: Keyboard mode set to system default

Es müssen alle Tasten gleichzeitig gedrückt sein, also:

Alt + Druck/S-Abf + R

oder mit Fn-Taste:

Fn + Alt + Druck/S-Abf + R

Das gleiche gilt für den Rest der "REISUB"-Sequenz.

  • nach E und/oder I beenden sich alle laufenden Prozesse, also auch das laufende dmesg-Terminal und der Windowmanager. Man landet auf einer TTY-Konsole.
  • nach S und U erscheinen entsprechende sysrq-Meldungen auf dem aktiven TTY-Terminal wie "Emergency Sync" und "Emergency Remount R/O". Danach ist zwingend ein Reboot notwendig, also:
  • B rebootet das System dann.