Magic SysRequest key

Aus Foxwiki

topic kurze Beschreibung

Beschreibung

  • Obwohl Linux sehr stabil ist, können in Ausnahmefällen Kernel Panics auftreten.
  • Manchmal stoppt auch nur der XServer, der für die grafische Oberfläche verantwortlich ist.
    • Dann ist unter Umständen nicht mal der Wechsel in eine Konsole zur Reparatur möglich.

In einem solchen Moment kann natürlich der Reset-Taster gedrückt oder der Rechner "hart" ausgeschaltet werden – mit dem immer vorhandenen Risiko von Datenverlusten.

  • Notwendig ist dies aber nicht, da es Möglichkeiten gibt, das System entweder sauber herunterzufahren oder weitere Maßnahmen zu ergreifen, um die Ursache des Problems zu finden.
  • Dazu gibt es eine Funktion des Kernels, die sich "SysRequest key" nennt, auch als Magische S-Abf-Taste bekannt.

Die SysRq-Taste befindet sich auf der deutschen Tastatur als Zweitbelegung von Druck.

  • Je nach Tastatur muss man zum Erreichen von "S-Abf" zuerst Alt gedrückt halten:
Alt + Druck (auf schweizerischen und englischsprachigen Tastaturen jedoch Alt Gr + die Taste "SysRq"). 
  • Bei Notebooks ist teilweise auch die Kombination mit Fn erforderlich.

Hinweis

  • Dell Vostro Laptops: Erst ⇩ num drücken – dann leuchtet das blaue LED auf – und danach Fn + Alt + Druck +"Buchstabe" drücken.
  • einige Logitech-Tastaturen (zum Beispiel K300): Erst Fn (Taste in rot) drücken, dann leuchten oben die LED's in kräftiger, oranger Farbe auf und danach Alt + Druck (die Druck-Taste ist die Pos1 -Taste) +"Buchstabe" drücken.
  • Workarounds, wie ⇩ num zuerst zu aktivieren oder Alt Gr anstelle von Alt zu verwenden, sind offenbar bei vielen Laptops nötig.
  • Ebenso kann es bei Notebooks vorkommen, dass die Tastenkombination auf der integrierten, nicht jedoch auf einer extern angeschlossenen Tastatur funktioniert.
  • Manchmal funktionieren nur Teile der Magic SysRQ-Kette nicht, etwa der letzte (B) für den Reboot.
  • In diesem Fall kann der Rechner durch kurzes Drücken des An-/Ausschalters neu gestartet werden.

Der gewünschte Befehl wird erteilt, indem auf der Tastatur dann noch zusätzlich der entsprechenden Buchstaben gedrückt wird.

Installation

Syntax

Parameter

Optionen

Konfiguration

Dateien

Anwendungen

Die meisten Tastenkombinationen werden oft in einer bestimmten Reihenfolge ausgeführt, um eine bestimmte Aktion auszuführen.

  • Für solche Sequenzen haben sich mittlerweile verschiedene Merksätze gebildet.
  • Die häufigste Sequenz wird vermutlich ein Notfall-Neustart sein; hierfür wird die ganze Zeit Alt + Druck gedrückt gehalten und nacheinander die Tasten R + E + I + S + U + B betätigt.
  • Die dazu benötigte Reihenfolge lässt sich mit folgendem Satz merken:
  • "Reboot Even If System Utterly Broken" oder
  • "Richtig Einparken Ist So Unglaublich Banal"
  • rückwärts: "busier", (vom engl. "busy", das heißt, beschäftigt oder ausgelastet)

Jeweils der erste Buchstabe eines Wortes steht für die folgende SysRQ-Funktion:

Hinweis

  • Seit Ubuntu 12.10 sind die ersten drei SysRQ-Funktionen standardmäßig deaktiviert.
  • Damit steht praktisch nur "SUB" zur Verfügung (194676, 1025467).
  • Möchte man diese aus Sicherheitsgründen getroffene Einschränkung aufheben, setzt man statt 176 den Wert 1 (siehe unten).
Sicheres Reboot
Taste Funktion Bedeutung
R unraw Nimmt der grafischen Oberfläche den Zugriff auf die Tastatur
E term Sendet ein SIGTERM an alle Prozesse außer Init
I kill Sendet ein SIGKILL an alle Prozesse außer Init
S sync Schreibt alle noch nicht auf die Festplatte geschriebenen Daten aus dem Kernel-Festplatten-Cache auf die Festplatten
U umount Alle eingehängten Partitionen werden ausgehängt, und danach nur-lesbar eingehängt
B reboot Fährt den Rechner sofort herunter, ohne Daten aus dem Kernel-Festplatten-Cache auf die Festplatten zu schreiben und ohne Partitionen auszuhängen, und startet den Rechner neu.

Weitere Funktionen

Sonstige Funktionen
Taste Funktion Bedeutung
C Crashdump Startet über kexec(sofern vorhanden) neu und gibt einen Dump auf dem Bildschirm aus.
  • Ohne kexec wird ein Absturz durch eine Null-Pointer-Dereferenzierung veranlasst.
D Zeigt im Textmodus alle gesetzten Locks an
K secure attention key Beendet alle Prozesse auf dem aktuellen Terminal, um sicher zu sein, dass der Login-Prompt von Init stammt und nicht von einem Trojaner.
  • Eine aufgehängte Anwendung, welche die SVGAlib benutzt oder ein nicht mehr reagierender X-Server lassen sich auch auf diese Weise beenden.
L Kill including init Sende SIGKILL an alle Prozesse, auch an Init.
  • Das kommt einem Ausschalten gleich.
M Memory Gibt im Textmodus die Hauptspeicherbelegung in der Konsole aus.
O Power off Fährt den Rechner mit APM/ACPI herunter und schalte ihn aus (wenn vom Rechner unterstützt).
P Zeigt im Textmodus den Inhalt der CPU-Register inklusive der FLAGS an
Q Zeigt im Textmodus alle derzeitig laufenden Timer an
T Zeigt im Textmodus eine Liste aktuell laufender Prozesse an.
W Zeigt im Textmodus die Prozesse in geblocktem Status an.
F force a OOM kill Killt den "teuersten" Prozess für den Speicher.

Aktivieren und Deaktivieren

Status prüfen

$ cat /proc/sys/kernel/sysrq
438
  • Ist die Ausgabe ungleich 0, ist SysRQ aktiv, bei 0 nicht.
  • Zur Deutung des zurückgelieferten Werts siehe sysrq.txt.

Aktivierung

# echo 1 | sudo tee /proc/sys/kernel/sysrq

Deaktivierung

# echo 0 | sudo tee /proc/sys/kernel/sysrq

Permanentes Aktivieren und Deaktivieren

/etc/sysctl.d/10-magic-sysrq.conf

# Werte fuer X sind der Dokumentation zu entnehmen: http://www.mjmwired.net/kernel/Documentation/sysrq.txt
#kernel.sysrq = X
#
# Deaktivierung
kernel.sysrq = 0

Kommandozeile

Wenn die Druck -Taste nicht zur Verfügung steht, das Terminal aber schon, können die SysRQ-Kommandos auch über eine Kommandozeile ausgeführt werden.

  • Mit Hilfe der Standard-Datenströme wird der Code der gewünschten Taste in den SysRQ-Trigger des procfs geschrieben.
# echo b | tee /proc/sysrq-trigger

Dieser Befehl ist äquivalent zur Kombination Alt + Druck + B und startet den Rechner sofort neu.

Problembehebung

Magic SysRQ testen

Wer die SysRQ-Funktionen gezielt testen möchte, startet am besten eine Forkbomb auf dem Rechner, um diesen bewusst zu überlasten. Abschließend noch ein Auszug des Systemprotokolls eines Rechners mit Ubuntu 14.04, aus dem deutlich zu erkennen ist, dass der ersten drei Tasten ("REI") ignoriert werden:

Sep  9 16:42:48 ubuntu kernel: [  568.061699] SysRq : This sysrq operation is disabled.
Sep  9 16:42:54 ubuntu kernel: [  573.215822] SysRq : This sysrq operation is disabled.
Sep  9 16:42:57 ubuntu kernel: [  576.346673] SysRq : This sysrq operation is disabled.
Sep  9 16:43:00 ubuntu kernel: [  579.131420] SysRq : Emergency Sync
Sep  9 16:43:00 ubuntu kernel: [  579.277440] Emergency Sync complete
Sep  9 16:43:02 ubuntu kernel: [  581.271897] SysRq : Emergency Remount R/O

Dokumentation

RFC

Man-Pages

Info-Pages

Projekt-Homepage

Links

Intern

Weblinks

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5


TMP

Die Funktion „S-Abf“ (engl. „SysRq“) ist auf IBM-AT-kompatiblen Tastaturen eine Alternativbelegung der „Druck“-Taste (englisch „Print Screen“)

Magic SysRq Key (kurz für „Magische S-Abf-Taste“, engl. Magic SysRequest key) bezeichnet eine Reihe von Tastenkombinationen mit der {{#if:trim|S-Abf}}-Taste für den Linux-Kernel. Damit lassen sich verschiedene Funktionen – beispielsweise ein Neustart des Computers – ausführen, wobei die einzelnen Funktionen auch nacheinander in sinnvoller Reihenfolge ausführbar sind. Das funktioniert auch noch, wenn der Computer auf andere Eingaben nicht mehr reagiert, sofern der Kernel noch nicht abgestürzt ist. Häufig nutzt man diesen „Klammergriff“ für einen Neustart, ohne Schäden am Dateisystem zu verursachen, oder um einen nicht mehr reagierenden X-Server zu beenden.

Häufig verwendete Kombinationen

Ein gerne verwendeter und in IT-Kreisen bekannter Weg, den Computer bei hängendem System neu zu starten, ist es, auf einem Linux-System die Tastenkombination {{#if:trim|Alt}} + {{#if:trim|S-Abf}} gedrückt zu halten und dabei nacheinander die Tasten {{#if:trim|R}}, {{#if:trim|E}}, {{#if:trim|I}}, {{#if:trim|S}}, {{#if:trim|U}} und {{#if:trim|B}} zu drücken. So werden die Dateisystemcaches sicher geleert (d. h. ihr Inhalt wird auf die Platte geschrieben), alle Dateisysteme sicher ausgehängt und damit eine Beschädigung des Dateisystems unterbunden. Eine weitere bekannte Tastenreihenfolge, RSEIUB, zieht den Sync vor.[1] Ein Argument dagegen ist, dass die terminierten Prozesse eventuell noch Daten in den Cache schreiben und der Sync somit zu früh kommt. Ein Argument dafür ist, dass der unmount-Befehl ohnehin die Platten synchronisieren sollte.[2] Es existiert kein Konsens darüber, welche Kombination zu bevorzugen ist.

Verfügbare Kombinationen

Der gewünschte Befehl wird erteilt, indem man gleichzeitig auf der Tastatur {{#if:trim|S-Abf}} + {{#if:trim|Alt}} drückt. {{#if:trim|S-Abf}} ist auf IBM-AT-kompatiblen Tastaturen eine Alternativbelegung der Taste {{#if:trim|Druck}}.

Auf Tastaturen für Deutschland drückt man gleichzeitig die Tasten {{#if:trim|Alt}} + {{#if:trim|Druck}} + {{#if:trim|Taste aus Tabelle unten}}.

Auf Tastaturen für die Schweiz und englischsprachige Länder entspricht die Taste {{#if:trim|SysRq}} dem deutschen Pendant {{#if:trim|S-Abf}}. Die Beschriftung ist zum Beispiel in der Schweiz {{#if:trim|PrtScr SysRq}}. Die Kombination auf schweizerischer Tastatur ist: {{#if:trim|Alt Gr}} + {{#if:trim|PrtScr SysRq}}.

Besonders auf Laptops müssen wegen herstellerspezifischen Tastaturlayouts ggf. noch Zusatztasten gedrückt werden, so etwa auf Dell-Laptops zunächst {{#if:trim|Num}}, anschließend {{#if:trim|Fn}} + {{#if:trim|Alt}} + {{#if:trim|Druck}} + {{#if:trim|entsprechender Buchstabe}}; auf z. B. ThinkPads kann folgende Abfolge verwendet werden: {{#if:trim|Alt}} drücken und halten, {{#if:trim|Fn}} + {{#if:trim|Druck}} drücken und wieder loslassen, {{#if:trim|entsprechenden Buchstaben}} drücken, alle loslassen.

Die für den entsprechenden Befehl notwendige Taste kann in der folgenden Tabelle abgelesen werden, Groß- und Kleinschreibung spielt keine Rolle. Die Angaben beziehen sich auf die in Deutschland übliche QWERTZ-Tastatur.

Alphanumerische Tasten und ihre Funktion[3][4]
Taste Funktion (englisch) Bedeutung
{{#if:trim|0}}{{#if:trim|9}} set log level 0}} werden nur noch kritische Meldungen wie etwa Kernel panic angezeigt.
{{#if:trim|B}} reboot Fahre den Rechner sofort herunter, ohne Daten aus dem Kernel-Festplatten-Cache auf die Festplatten zu schreiben und ohne Partitionen auszuhängen, und starte den Rechner neu.
{{#if:trim|C}} crashdump Starte mit Hilfe von kexec[5] neu (sofern vorhanden) und gib einen Crashdump auf dem Bildschirm aus. Ansonsten provoziere einen Absturz durch eine Null-Pointer-Dereferenzierung.[6]
{{#if:trim|D}} Zeige (im Textmodus) alle derzeitigen Locks an.
{{#if:trim|E}} term Sende SIGTERM an alle Prozesse außer Init
{{#if:trim|F}} force a OOM kill Startet den OOM-Killer, der den speicherlastigsten Prozess tötet. Damit kann man meistens am System weiterarbeiten, wenn ein Prozess anfängt stark auszulagern und das System dadurch sehr träge reagiert.
{{#if:trim|G}} kGDB Schaltet bei neueren Kernelversionen auf die Framebuffer-Textkonsole um und startet den Kernel-Debugger kgdb, falls vorhanden.
{{#if:trim|H}} help Gib einen Hilfetext für die Benutzung des Magic-SysRq-Key aus. Auch jede andere nicht belegte Taste gibt diesen Text aus.
{{#if:trim|I}} kill Sende SIGKILL an alle Prozesse außer Init
{{#if:trim|J}} "Just thaw it" Beendet bei neueren Kernelversionen das „Einfrieren“ eines Dateisystems durch die IOCTL-Funktion FIFREEZE.
{{#if:trim|K}} secure attention key Beende alle Prozesse auf dem aktuellen Terminal, um sicher zu sein, dass der Login-Prompt von Init stammt und nicht von einem Trojaner. Eine aufgehängte Anwendung, welche die SVGAlib benutzt, oder ein nicht mehr reagierender X-Server lassen sich auch auf diese Weise beenden. So wird etwa in Ubuntu ab Version 9.04 dies statt der bisher genutzten Kombination {{#if:trim|Strg}} + {{#if:trim|Alt}} + {{#if:trim|Backspace}} empfohlen.[7]
{{#if:trim|L}} kill including init Sende SIGKILL an alle Prozesse, auch an Init. Das kommt einem Ausschalten gleich. Neuere Kernelversionen zeigen einen Backtrace an.
{{#if:trim|M}} memory Gib die Hauptspeicherbelegung in der Konsole aus.
{{#if:trim|N}} Hiermit lässt sich die Priorität von Echtzeit-Prozessen herabsetzen.
{{#if:trim|O}} poweroff Schaltet den Rechner mit sofortiger Wirkung über ACPI/APM – wenn unterstützt – aus. Wie bei {{#if:trim|B}} wird mit {{#if:trim|O}} alleine nichts gespeichert.
{{#if:trim|P}} show registers Zeige den Inhalt der CPU-Register inklusive der Flags an.
{{#if:trim|Q}} Zeige alle derzeitig laufenden Timer an.
{{#if:trim|R}} unraw Verlasse den Keyboard-Raw-Modus, der unter X und SVGAlib aktiv ist, in den Keyboard-XLATE-Modus, der im Textmodus von Linux verwendet werden kann. Dies kann nützlich sein, wenn eine grafische Anwendung abstürzt und der Benutzer sich in der Konsole wiederfindet, die aufgrund des falschen Tastatur-Modus zunächst jedoch nicht benutzbar ist.
{{#if:trim|S}} sync Schreibe alle noch nicht auf die Festplatte geschriebenen Daten aus dem Kernel-Festplatten-Cache auf die Festplatten
{{#if:trim|T}} show tasks Zeige eine Liste aktuell laufender Prozesse an.
{{#if:trim|U}} umount Alle schreibbar eingebundenen Partitionen werden ausgehängt und anschließend nur-lesend wieder eingehängt.
{{#if:trim|V}} framebuffer, ETM dump Schaltet bei neueren Kernelversionen auf die Framebuffer-Textkonsole um. Auf der ARM-Architektur wird der ETM-Puffer angezeigt.
{{#if:trim|W}} Zeige blockierte Prozesse an, die sich, beispielsweise während Festplattenzugriffen, im „ununterbrechbaren Schlaf“ befinden.
{{#if:trim|X}} XMON Bei neueren Kernelversionen für die XMON-Schnittstelle der Power/PowerPC-Architektur verwendet.
{{#if:trim|Y}} FTRACE dump Bei neueren Kernelversionen wird der FTRACE-Puffer angezeigt.
{{#if:trim|Z}} show global CPU registers Bei neueren Kernelversionen werden auf der SPARC-64-Architektur die globalen CPU-Register angezeigt.

Auslösen auf der Kommandozeile

Die genannten Befehle können auch über die Shell (und somit auch durch Skripte) ausgelöst werden. Dazu wird in virtuelle Datei /proc/sysrq-trigger vom Kernel-Proc-API das entsprechende Zeichen geschrieben. Dies ist nur als root möglich. Der folgende Befehl löst beispielsweise einen sofortigen Reboot aus.

echo b > /proc/sysrq-trigger

Literatur

  • Oliver Diedrich: Geht nicht? Gibts nicht! Hängende Linux-Systeme sicher ausschalten. In: c’t Nr. 26, 2008, S. 210

Weblinks

Vorlage:Wikibooks

Einzelnachweise

  1. Ubuntuforums.org, Guide zum Magic SysrRq Key (englisch)
  2. Linuxhowtos.org(englisch) oder pro-linux.de, Aussage zu: "unmount enthält sync"
  3. c’t kompakt Linux. Heise, Hannover 2009.
  4. Ein Großteil dieses Artikels besteht aus Informationen, die der offiziellen Dokumentation für den Magic SysRq Key entnommen sind, welche sich auf Linux-Systemen üblicherweise in der Datei /usr/src/linux/Documentation/sysrq.txt befindet (zuletzt überarbeitet nach der Dokumentation zur Version 3.4). Als zuverlässige Gebrauchsanweisung sollte ebendiese Dokumentation für die entsprechende Kernel-Version des Systems herangezogen werden.
  5. Readme-Datei von kexec
  6. Vorlage:Webarchiv oder mjmwired.net, SysRq Dokumentation
  7. „Ubuntu 9.04“ im Ubuntuusers-Wiki oder Releasenotes zu Ubuntu 9.04 (englisch)