Magic SysRequest key: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(105 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Magic SysRequest key''' (''Magische S-Abf-Taste'') ist eine Funktion des [[:Kategorie:Linux:Kernel|Linux Kernel]]s in Fehlersituationen Befehle per [[:Kategorie:Computer:Tasten|Tasten]]kombinationen entgegennehmen zu können.
'''Magic SysRequest key''' (''Magische S-Abf-Taste'') ist eine Funktion des [[:Kategorie:Linux/Kernel|Linux Kernel]]s in Fehlersituationen Befehle per [[/Kategorie:Informatik/Tasten|Tasten]]kombinationen entgegennehmen zu können.


= Beschreibung =
== Beschreibung ==
Das funktioniert auch noch, wenn der Computer auf andere Eingaben nicht mehr reagiert, sofern der Kernel noch nicht abgestürzt ist.  
Tastenkombination, auf die der Kernel reagiert, unabhängig davon, was es sonst noch tut, solange er nicht komplett abgestürzt ist.
* Damit lassen sich verschiedene Funktionen ausführen
** Neustart


* Damit lassen sich verschiedene Funktionen ausführen (etwa ein Neustart)
Dabei können die Funktionen nacheinander in sinnvoller Reihenfolge ausgeführt werden.
* Dabei können die Funktionen nacheinander in sinnvoller Reihenfolge ausgeführt werden.  
* Häufig nutzt man diese Tastenkombination für einen Neustart, ohne Schäden am [[Dateisystem]] zu verursachen, oder um einen nicht mehr reagierenden [[X-Server]] zu beenden.
* 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.


  mit der {{Taste|[[Systemabfrage-Taste|S-Abf]]}}-Taste
  mit der {{Taste|[[Systemabfrage-Taste|S-Abf]]}}-Taste
Zeile 12: Zeile 13:
[[Datei:KeyboardWithPrintScreenRinged.svg|Die Funktion „[[Systemabfrage-Taste|S-Abf]]“ ([[Englische Sprache|engl.]] „SysRq“) ist auf IBM-AT-kompatiblen Tastaturen eine Alternativbelegung der „Druck“-Taste (englisch „Print Screen“)]]
[[Datei:KeyboardWithPrintScreenRinged.svg|Die Funktion „[[Systemabfrage-Taste|S-Abf]]“ ([[Englische Sprache|engl.]] „SysRq“) ist auf IBM-AT-kompatiblen Tastaturen eine Alternativbelegung der „Druck“-Taste (englisch „Print Screen“)]]


* Obwohl Linux sehr stabil ist, können in Ausnahmefällen [https://de.wikipedia.org/wiki/Kernel_Panic Kernel Panics] auftreten.  
* Obwohl Linux sehr stabil ist, können in Ausnahmefällen [https://de.wikipedia.org/wiki/Kernel_Panic Kernel Panics] auftreten.
* Manchmal stoppt auch nur der [https://wiki.ubuntuusers.de/XServer/ XServer], der für die grafische Oberfläche verantwortlich ist.  
* Manchmal stoppt auch nur der [https://wiki.ubuntuusers.de/XServer/ XServer], der für die grafische Oberfläche verantwortlich ist.
** Dann ist unter Umständen nicht mal der Wechsel in eine [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Konsole] zur Reparatur möglich.
** Dann ist unter Umständen nicht mal der Wechsel in eine [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole 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.  
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.  
* 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 [https://de.wikipedia.org/wiki/Magische_S-Abf-Taste Magische S-Abf-Taste] bekannt.
* Dazu gibt es eine Funktion des Kernels, die sich "SysRequest key" nennt, auch als [https://de.wikipedia.org/wiki/Magische_S-Abf-Taste Magische S-Abf-Taste] bekannt.


Die SysRq-Taste befindet sich auf der deutschen Tastatur als Zweitbelegung von Druck.
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:  
* 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").  
  Alt + Druck (auf schweizerischen und englischsprachigen Tastaturen jedoch Alt Gr + die Taste "SysRq").
* Bei Notebooks ist teilweise auch die Kombination mit Fn erforderlich.
* Bei Notebooks ist teilweise auch die Kombination mit Fn erforderlich.


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


= Syntax =
Es kann immer mal passieren, dass das System nicht mehr reagiert, weil zum Beispiel ein Treiber defekt, eine Programminstallation fehlgeschlagen ist oder etwas nicht richtig konfiguriert wurde. Auf keinen Fall sollte man sofort zum Hardwarereset greifen oder den Strom ausschalten.
== Parameter ==
== Optionen ==
= Konfiguration =
== Aktivieren und Deaktivieren ==
'''Status prüfen'''
$ '''cat /proc/sys/kernel/sysrq'''
438


* Ist die Ausgabe ungleich <tt>0</tt>, ist SysRQ aktiv, bei <tt>0</tt> nicht.
[[Bild:KeyboardWithPrintScreenRinged.svg|thumb|{{Taste|S-Abf}} ist rot eingekringelt]]
* Zur Deutung des zurückgelieferten Werts siehe [http://www.mjmwired.net/kernel/Documentation/sysrq.txt sysrq.txt].
Im Linux-Kernel wurden Tastenkombination verankert, die höchste Priorität haben. Mit ihnen lässt sich auch in grob verhakten Situationen ein sauberer Neustart durchführen. Diese sind unter dem Begriff ''magic SysRq key'' oder ''magische S-Abf-Taste'' bekannt, wobei {{Taste|S-Abf}} eine Alternativbelegung von {{Taste|Druck}} ist. Man hält also gleichzeitig {{Taste|Alt}} + {{Taste|Druck}} gedrückt und betätigt währenddessen eine alphanumerische Taste, meist mehrere Kombinationen aus Buchstaben und Zahlen nacheinander.


'''Aktivierung'''
== Aufruf ==
# '''echo 1 | sudo tee /proc/sys/kernel/sysrq'''
=== Auslösen eines magischen SysRq-Schlüssels ===
Sie drücken die Tastenkombination ALT-SysRq-<Befehlstaste>
* <Befehlstaste> unterscheidet zwischen Groß- und Kleinschreibung


'''Deaktivierung'''
'''Hinweis'''
# '''echo 0 | sudo tee /proc/sys/kernel/sysrq'''
* Tastaturen haben möglicherweise keine Taste mit der Bezeichnung „SysRq“.
* Der 'SysRq'-Schlüssel ist auch bekannt als die Taste „Drucken“.
* Auch manche Tastaturen können das nicht damit umgehen, dass so viele Tasten gleichzeitig gedrückt werden, also könnten Sie
Viel Glück mit `Alt` drücken, `SysRq` drücken, `SysRq` loslassen, `<Befehlstaste>` drücken, alles loslassen.


== Dateien ==
Schreiben Sie ein Zeichen in /proc/sysrq-trigger.  z.B::
'''Permanentes Aktivieren und Deaktivieren'''
echo t > /proc/sysrq-trigger


''/etc/sysctl.d/10-magic-sysrq.conf''
=== Befehlstasten ===
# Werte fuer X sind der Dokumentation zu entnehmen: http://www.mjmwired.net/kernel/Documentation/sysrq.txt
{| class="wikitable sortable"
  #kernel.sysrq = X
|-
#
!Taste !! Beschreibung
# Deaktivierung
|-
kernel.sysrq = 0
| b || Startet das System sofort neu, ohne es zu synchronisieren oder abzumelden Ihre Festplatten.
 
|-
= Anwendungen =
| c || Führt einen Systemabsturz durch und es wird ein Crashdump erstellt falls konfiguriert.
== Verfügbare Kombinationen ==
|-
Der gewünschte Befehl wird erteilt, indem man ''gleichzeitig'' auf der Tastatur {{Taste|S-Abf|halten}}&nbsp;+&nbsp;{{Taste|Alt|halten}} drückt. {{Taste|S-Abf}} ist auf IBM-AT-kompatiblen Tastaturen eine Alternativbelegung der Taste {{Taste|Druck}}.
| d || Zeigt alle Sperren, die gehalten werden.
 
|-
Auf Tastaturen für Deutschland drückt man ''gleichzeitig'' die Tasten {{Taste|[[Alt (Taste)|Alt]]|halten}}&nbsp;+&nbsp;{{Taste|Druck|halten}}&nbsp;+&nbsp;{{Taste|''[[Alphanumerische Zeichen|Taste aus Tabelle unten]]''}}.
| e || Sendet ein SIGTERM an alle Prozesse außer init.
|-
| f || Ruft den Oom-Killer auf, um einen Speicherfresser-Prozess zu beenden, tut es aber nicht Panik, wenn nichts getötet werden kann.
|-
| g || Wird von kgdb (Kernel-Debugger) verwendet
|-
| h || Zeigt Hilfe an (eigentlich jede andere Taste als die aufgeführten Hier wird Hilfe angezeigt,  aber ''h'' ist leicht zu merken :-)
|-
| i || Sende ein SIGKILL an alle Prozesse, außer an init.
|-
| j || Zwangsweise "einfach auftauen" - Dateisysteme durch das FIFREEZE ioctl eingefroren.
|-
| k || Secure Access Key (SAK) Beendet alle Programme auf dem aktuellen virtuellen KonsoleHINWEIS: Siehe wichtige Kommentare unten im SAK-Abschnitt.
|-
| l || Zeigt einen Stack-Backtrace für alle aktiven CPUs.
|-
| m || Gibt aktuelle Speicherinformationen auf Ihre Konsole aus.
|-
| n || Wird verwendet, um RT-Aufgaben angenehm zu machen
|-
| o || Schaltet Ihr System ab (falls konfiguriert und unterstützt).
|-
| p || Gibt die aktuellen Register und Flags auf Ihre Konsole aus.
|-
| q || Gibt pro CPU-Listen aller aktivierten Timer aus (aber NICHT reguläre timer_list Timer) und detaillierte Informationen zu allen clockevent-Geräte.
|-
| r || Deaktiviert den Tastatur-Rohmodus und setzt ihn auf XLATE.
|-
| s || Versucht alle gemounteten Dateisysteme zu synchronisieren.
|-
| t || Gibt eine Liste aktueller Aufgaben und deren Informationen an Ihren aus Konsole.
|-
| u || Versucht, alle gemounteten Dateisysteme schreibgeschützt neu einzuhängen.
|-
| v || Stellt die Framebuffer-Konsole zwangsweise wieder her. Verursacht ETM Buffer Dump [ARM-spezifisch]
|-
| w || Gibt Tasks aus, die sich in einem unterbrechungsfreien (blockierten) Zustand befinden.
|-
| x || Wird von der xmon-Schnittstelle auf ppc/powerpc-Plattformen verwendet. Globale PMU-Register auf sparc64 anzeigen. Sichern Sie alle TLB-Einträge auf MIPS.
|-
| y || Globale CPU Register anzeigen [SPARC-64 spezifisch]
|-
| z || Den ftrace-Puffer ausgeben
|-
| 0-9 || Legt die Konsolenprotokollebene fest, die steuert, welche Kernelmeldungen angezeigt werden wird auf Ihre Konsole gedruckt.  (''0'', zum Beispiel würde machen es so, dass nur Notfallmeldungen wie PANICs oder OOPSes würden schaffe es auf deine Konsole.)
|}


Auf Tastaturen für die Schweiz und englischsprachige Länder entspricht die Taste {{Taste|SysRq}} dem deutschen Pendant {{Taste|S-Abf}}. Die Beschriftung ist zum Beispiel in der Schweiz {{Taste|PrtScr SysRq}}. Die Kombination auf schweizerischer Tastatur ist: {{Taste|Alt Gr|halten}}&nbsp;+&nbsp;{{Taste|PrtScr SysRq|halten}}.
=== Verfügbare Kombinationen ===
Der gewünschte Befehl wird erteilt, indem man ''gleichzeitig'' auf der Tastatur {{Taste|S-Abf|halten}} + {{Taste|Alt|halten}} drückt. {{Taste|S-Abf}} ist auf IBM-AT-kompatiblen Tastaturen eine Alternativbelegung der Taste {{Taste|Druck}}.


Besonders auf [[Laptop]]s müssen wegen herstellerspezifischen Tastaturlayouts ggf. noch Zusatztasten gedrückt werden, so etwa auf [[Dell]]-Laptops zunächst {{Taste|Num}}, anschließend {{Taste|Fn|halten}}&nbsp;+&nbsp;{{Taste|Alt|halten}}&nbsp;+&nbsp;{{Taste|Druck|halten}}&nbsp;+&nbsp;{{Taste|''entsprechender Buchstabe''}}; auf z.&nbsp;B. [[ThinkPad]]s kann folgende Abfolge verwendet werden: {{Taste|Alt|halten}} drücken und halten, {{Taste|Fn|halten}}&nbsp;+&nbsp;{{Taste|Druck}} drücken und wieder loslassen, {{Taste|''entsprechenden Buchstaben''}} drücken, alle loslassen.
Auf Tastaturen für Deutschland drückt man ''gleichzeitig'' die Tasten {{Taste|[[Alt (Taste)|Alt]]|halten}} + {{Taste|Druck|halten}} + {{Taste|''[[Alphanumerische Zeichen|Taste aus Tabelle unten]]''}}.


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.
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.
Zeile 114: Zeile 159:
| class="hintergrundfarbe8"| {{Taste|K}}
| class="hintergrundfarbe8"| {{Taste|K}}
! secure attention key
! secure attention key
| Beende alle Prozesse auf dem aktuellen Terminal, um sicher zu sein, dass der [[Login (Informationstechnik)|Login]]-[[Prompt]] von [[Init]] stammt und nicht von einem [[Trojanisches Pferd (Computerprogramm)|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 {{Taste|Strg|halten}}&nbsp;+&nbsp;{{Taste|Alt|halten}}&nbsp;+&nbsp;{{Taste|[[Backspace]]}} empfohlen.<ref>[http://wiki.ubuntuusers.de/Jaunty_Jackalope#Don-t-Zap „Ubuntu 9.04“ im Ubuntuusers-Wiki] oder [http://www.ubuntu.com/getubuntu/releasenotes/904#Ctrl-Alt-Backspace%20disabled%20by%20default%20in%20Xorg Releasenotes zu Ubuntu 9.04] (englisch)</ref>
| Beende alle Prozesse auf dem aktuellen Terminal, um sicher zu sein, dass der [[Login (Informationstechnik)|Login]]-[[Prompt]] von [[Init]] stammt und nicht von einem [[Trojanisches Pferd (Computerprogramm)|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 {{Taste|Strg|halten}} + {{Taste|Alt|halten}} + {{Taste|[[Backspace]]}} empfohlen.<ref>[http://wiki.ubuntuusers.de/Jaunty_Jackalope#Don-t-Zap „Ubuntu 9.04“ im Ubuntuusers-Wiki] oder [http://www.ubuntu.com/getubuntu/releasenotes/904#Ctrl-Alt-Backspace%20disabled%20by%20default%20in%20Xorg Releasenotes zu Ubuntu 9.04] (englisch)</ref>
|---
|---
| class="hintergrundfarbe8"| {{Taste|L}}
| class="hintergrundfarbe8"| {{Taste|L}}
Zeile 130: Zeile 175:
| class="hintergrundfarbe8"| {{Taste|O}}
| class="hintergrundfarbe8"| {{Taste|O}}
! poweroff
! poweroff
| Schaltet den Rechner mit sofortiger Wirkung über [[Advanced Configuration and Power Interface|ACPI]]/[[Advanced Power Management|APM]] –&nbsp;wenn unterstützt&nbsp;– aus. Wie bei {{Taste|B}} wird mit {{Taste|O}} alleine nichts gespeichert.
| Schaltet den Rechner mit sofortiger Wirkung über [[Advanced Configuration and Power Interface|ACPI]]/[[Advanced Power Management|APM]] – wenn unterstützt – aus. Wie bei {{Taste|B}} wird mit {{Taste|O}} alleine nichts gespeichert.
|---
|---
| class="hintergrundfarbe8"| {{Taste|P}}
| class="hintergrundfarbe8"| {{Taste|P}}
Zeile 177: Zeile 222:
|}
|}


Die meisten Tastenkombinationen werden oft in einer bestimmten Reihenfolge ausgeführt, um eine bestimmte Aktion auszuführen.  
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.  
* 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 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:
* Die dazu benötigte Reihenfolge lässt sich mit folgendem Satz merken:
* ''"'''R'''eboot '''E'''ven '''I'''f '''S'''ystem '''U'''tterly '''B'''roken"'' oder
* ''"'''R'''eboot '''E'''ven '''I'''f '''S'''ystem '''U'''tterly '''B'''roken"'' oder
Zeile 188: Zeile 233:


''' Hinweis '''
''' Hinweis '''
* Seit [https://wiki.ubuntuusers.de/Quantal/ Ubuntu 12.10] sind die ersten drei SysRQ-Funktionen standardmäßig deaktiviert.  
* Seit [https://wiki.ubuntuusers.de/Quantal/ Ubuntu 12.10] sind die ersten drei SysRQ-Funktionen standardmäßig deaktiviert.
* Damit steht praktisch nur "SUB" zur Verfügung ([https://launchpad.net/bugs/194676 194676], [https://launchpad.net/bugs/1025467 1025467]).  
* Damit steht praktisch nur "SUB" zur Verfügung ([https://launchpad.net/bugs/194676 194676], [https://launchpad.net/bugs/1025467 1025467]).
* Möchte man diese aus Sicherheitsgründen getroffene Einschränkung aufheben, setzt man statt <tt>176</tt> den Wert <tt>1</tt> ([https://wiki.ubuntuusers.de/Magic_SysRQ/#Permanentes-Aktivieren-und-Deaktivieren-von-Magic-SysRQ siehe unten]).  
* Möchte man diese aus Sicherheitsgründen getroffene Einschränkung aufheben, setzt man statt <tt>176</tt> den Wert <tt>1</tt> ([https://wiki.ubuntuusers.de/Magic_SysRQ/#Permanentes-Aktivieren-und-Deaktivieren-von-Magic-SysRQ siehe unten]).


{|| class="wikitable sortable"  
{|| class="wikitable sortable"
|-  
|-
| colspan="4" | Sicheres Reboot  
| colspan="4" | Sicheres Reboot
|-
|-
|  | '''Taste'''  
|  | '''Taste'''
|  | '''Funktion'''  
|  | '''Funktion'''
|  | '''Bedeutung'''  
|  | '''Bedeutung'''
|  |  
|  |
|-
|-
|  | R  
|  | R
|  | unraw  
|  | unraw
|  | Nimmt der grafischen Oberfläche den Zugriff auf die Tastatur  
|  | Nimmt der grafischen Oberfläche den Zugriff auf die Tastatur
|  |  
|  |
|-
|-
|  | E  
|  | E
|  | term  
|  | term
|  | Sendet ein [https://wiki.ubuntuusers.de/Signale/ SIGTERM] an alle Prozesse außer Init  
|  | Sendet ein [https://wiki.ubuntuusers.de/Signale/ SIGTERM] an alle Prozesse außer Init
|  |  
|  |
|-
|-
|  | I  
|  | I
|  | kill  
|  | kill
|  | Sendet ein [https://wiki.ubuntuusers.de/Signale/ SIGKILL] an alle Prozesse außer Init  
|  | Sendet ein [https://wiki.ubuntuusers.de/Signale/ SIGKILL] an alle Prozesse außer Init
|  |  
|  |
|-
|-
|  | S  
|  | S
|  | [https://wiki.ubuntuusers.de/sync/ sync]  
|  | [https://wiki.ubuntuusers.de/sync/ sync]
|  | Schreibt alle noch nicht auf die Festplatte geschriebenen Daten aus dem Kernel-Festplatten-Cache auf die Festplatten  
|  | Schreibt alle noch nicht auf die Festplatte geschriebenen Daten aus dem Kernel-Festplatten-Cache auf die Festplatten
|  |  
|  |
|-
|-
|  | U  
|  | U
|  | umount  
|  | umount
|  | Alle eingehängten Partitionen werden ausgehängt, und danach nur-lesbar eingehängt  
|  | Alle eingehängten Partitionen werden ausgehängt, und danach nur-lesbar eingehängt
|  |  
|  |
|-
|-
|  | B  
|  | B
|  | reboot  
|  | 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.  
|  | 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
Weitere Funktionen
{|| class="wikitable sortable"  
{|| class="wikitable sortable"
|-  
|-
| colspan="4" | Sonstige Funktionen  
| colspan="4" | Sonstige Funktionen
|-
|-
|  | '''Taste'''  
|  | '''Taste'''
|  | '''Funktion'''  
|  | '''Funktion'''
|  | '''Bedeutung'''  
|  | '''Bedeutung'''
|  |  
|  |
|-
|-
|  | C  
|  | C
|  | Crashdump  
|  | Crashdump
|  | Startet über '''kexec'''(sofern vorhanden) neu und gibt einen Dump auf dem Bildschirm aus.  
|  | 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.
* Ohne '''kexec''' wird ein Absturz durch eine Null-Pointer-Dereferenzierung veranlasst.
|  |  
|  |
|-
|-
|  | D  
|  | D
|  |  
|  |
|  | Zeigt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] alle gesetzten Locks an  
|  | Zeigt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] alle gesetzten Locks an
|  |  
|  |
|-
|-
|  | K  
|  | K
|  | secure attention key  
|  | 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.  
|  | 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.  
* Eine aufgehängte Anwendung, welche die SVGAlib benutzt oder ein nicht mehr reagierender X-Server lassen sich auch auf diese Weise beenden.
|  |  
|  |
|-
|-
|  | L  
|  | L
|  | Kill including init  
|  | Kill including init
|  | Sende [https://wiki.ubuntuusers.de/Signale/ SIGKILL] an alle Prozesse, auch an Init.  
|  | Sende [https://wiki.ubuntuusers.de/Signale/ SIGKILL] an alle Prozesse, auch an Init.
* Das kommt einem Ausschalten gleich.  
* Das kommt einem Ausschalten gleich.
|  |  
|  |
|-
|-
|  | M  
|  | M
|  | Memory  
|  | Memory
|  | Gibt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] die Hauptspeicherbelegung in der Konsole aus.  
|  | Gibt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] die Hauptspeicherbelegung in der Konsole aus.
|  |  
|  |
|-
|-
|  | O  
|  | O
|  | Power off  
|  | Power off
|  | Fährt den Rechner mit [https://wiki.ubuntuusers.de/Archiv/Energiesparmodi_mit_ACPI/ APM/ACPI] herunter und schalte ihn aus (wenn vom Rechner unterstützt).  
|  | Fährt den Rechner mit [https://wiki.ubuntuusers.de/Archiv/Energiesparmodi_mit_ACPI/ APM/ACPI] herunter und schalte ihn aus (wenn vom Rechner unterstützt).
|  |  
|  |
|-
|-
|  | P  
|  | P
|  |  
|  |
|  | Zeigt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] den Inhalt der CPU-Register inklusive der FLAGS an  
|  | Zeigt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] den Inhalt der CPU-Register inklusive der FLAGS an
|  |  
|  |
|-
|-
|  | Q  
|  | Q
|  |  
|  |
|  | Zeigt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] alle derzeitig laufenden Timer an  
|  | Zeigt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] alle derzeitig laufenden Timer an
|  |  
|  |
|-
|-
|  | T  
|  | T
|  |  
|  |
|  | Zeigt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] eine Liste aktuell laufender Prozesse an.  
|  | Zeigt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] eine Liste aktuell laufender Prozesse an.
|  |  
|  |
|-
|-
|  | W  
|  | W
|  |  
|  |
|  | Zeigt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] die Prozesse in geblocktem Status an.  
|  | Zeigt im [https://wiki.ubuntuusers.de/Terminal/#Virtuelle-Konsole Textmodus] die Prozesse in geblocktem Status an.
|  |  
|  |
|-
|-
|  | F  
|  | F
|  | force a OOM kill  
|  | force a OOM kill
|  | Killt den "teuersten" Prozess für den Speicher.  
|  | Killt den "teuersten" Prozess für den Speicher.
|  |  
|  |
|-
|-
|}
|}


== 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 {{Taste|Alt|halten}}&nbsp;+&nbsp;{{Taste|S-Abf|halten}} gedrückt zu halten und dabei nacheinander die Tasten {{Taste|R}}, {{Taste|E}}, {{Taste|I}}, {{Taste|S}}, {{Taste|U}} und {{Taste|B}} zu drücken.
* So werden die Dateisystemcaches sicher geleert (d.&nbsp;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.<ref>[http://ubuntuforums.org/showthread.php?t=617349 Ubuntuforums.org], Guide zum Magic SysrRq Key (englisch)</ref> 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.<ref>[http://www.linuxhowtos.org/Tips%20and%20Tricks/sysrq.htm Linuxhowtos.org](englisch) oder [http://www.pro-linux.de/kurztipps/2/1235/der-magic-sysrq-key.html pro-linux.de], Aussage zu: "unmount enthält sync"</ref>
* Es existiert kein Konsens darüber, welche Kombination zu bevorzugen ist.


== Kommandozeile ==
{| class="prettytable"
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.  
|+ Alphanumerische Tasten und ihre Funktion
* Mit Hilfe der Standard-Datenströme wird der Code der gewünschten Taste in den SysRQ-Trigger des procfs geschrieben.  
|--- class="hintergrundfarbe6"
  # '''echo b | tee /proc/sysrq-trigger'''
!Taste
!Funktion
!Bedeutung
|---
| class="hintergrundfarbe8"| {{Taste|R}}
! unraw
|Verlasse den Keyboard–Raw–Modus, der unter {{W|X Window System|X}} und SVGAlib aktiv ist, in den Keyboard–XLATE–Modus, der im {{W|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.
|---
| class="hintergrundfarbe8"| {{Taste|K}}
! secure attention key
| Beende alle Prozesse auf dem aktuellen Terminal, um sicher zu sein, dass der {{W|Login_(Benutzeranmeldung)|Login}}–{{W|Prompt}} von {{W|Init}} stammt und nicht von einem {{W|Trojanisches Pferd (Computerprogramm)|Trojaner}}. Eine aufgehängte Anwendung, welche die SVGAlib benutzt oder ein nicht mehr reagierender X–Server lassen sich auch auf diese Weise beenden.
|---
| class="hintergrundfarbe8"| {{Taste|B}}
! reboot
| Fahre den Rechner sofort herunter, ohne Daten aus dem Kernel–Festplatten–{{W|Cache}} auf die Festplatten zu schreiben und ohne Partitionen auszuhängen, und starte den Rechner neu.
|---
| class="hintergrundfarbe8"| {{Taste|O}}
! poweroff
| Fahre den Rechner mit {{W|Advanced Configuration and Power Interface|ACPI}} oder {{W|Advanced Power Management|APM}} herunter und schalte ihn aus (wenn vom Rechner und Kernel unterstützt).
|---
| class="hintergrundfarbe8"| {{Taste|S}}
! sync
| Schreibe alle noch nicht auf die Festplatte geschriebenen Daten aus dem Kernel-Festplatten-Cache auf die Festplatten
|---
| class="hintergrundfarbe8"| {{Taste|U}}
! umount
| Alle schreibbar eingebundenen {{W|Partition (Festplatte)|Partitionen}} werden ausgehängt und anschließend nur-lesend wieder eingehängt.
|---
| class="hintergrundfarbe8"| {{Taste|M}}
! memory
| Gib die Hauptspeicherbelegung in der Konsole aus.
|---
| class="hintergrundfarbe8"| {{Taste|E}}
! term
| Sende ''{{W|SIGTERM}}'' an alle Prozesse außer Init
|---
| class="hintergrundfarbe8"| {{Taste|I}}
! kill
| Sende ''{{W|SIGKILL}}'' an alle Prozesse außer Init
|---
| class="hintergrundfarbe8"| {{Taste|L}}
! kill including init
| Sende ''{{W|SIGKILL}}'' an alle Prozesse, auch an Init. Das kommt einem Ausschalten gleich. Neuere Kernelversionen zeigen einen ''{{W|Stacktrace}}'' an.
|---
| class="hintergrundfarbe8"| {{Taste|C}}
! crashdump
| Starte mithilfe von kexec<ref>[http://www.xmission.com/~ebiederm/files/kexec/README Readme Datei von kexec]</ref> neu (sofern vorhanden) und gib einen Crashdump auf dem Bildschirm aus. Ansonsten provoziere einen Absturz durch eine Null-Pointer-Dereferenzierung.<ref>http://www.mjmwired.net/kernel/Documentation/sysrq.txt</ref>
|---
| class="hintergrundfarbe8"| {{Taste|D}}
!
| Zeige (im Textmodus) alle derzeitigen ''{{W|Locks}}'' an.
|---
| class="hintergrundfarbe8"| {{Taste|Q}}
!
| Zeige alle derzeitig laufenden ''{{W|Timer}}'' an.
|---
| class="hintergrundfarbe8"| {{Taste|P}}
!
| Zeige den Inhalt der {{W|Register (Computer)|CPU–Register}} inklusive der {{W|Statusregister}} an.
|---
| class="hintergrundfarbe8"| {{Taste|T}}
!
| Zeige eine Liste aktuell laufender Prozesse an.
|---
| class="hintergrundfarbe8"| {{Taste|W}}
!
| Zeige blockierte Prozesse an, die sich, beispielsweise während Festplattenzugriffen, im „ununterbrechbaren Schlaf“ befinden.
|---
| class="hintergrundfarbe8"| {{Taste|N}}
!
| Hiermit lässt sich die {{W|Prioritätsscheduling|Priorität}} von {{W|Echtzeit}}–Prozessen herabsetzen.
|---
| class="hintergrundfarbe8"| {{Taste|H}}
! help
| Gib einen Hilfetext für die Benutzung des ''Magic–SysRq–Key'' aus. Auch jede andere nicht belegte Taste gibt diesen Text aus, aber {{Taste|H}} wird höchstwahrscheinlich auch in Zukunft nicht anderweitig belegt werden und lässt sich aufgrund der Eselsbrücke zu „Hilfe“ bzw.&nbsp;„Help“ gut merken.
|---
| class="hintergrundfarbe8"| {{Taste|0}}…{{Taste|9}}
! set log level
| Zahlen von 0 bis 9 bestimmen den ''Log Level'', das heißt die Grenze, ab welcher Wichtigkeit eine Nachricht des Kernels angezeigt wird. Bei {{Taste|0}} werden nur noch kritische Meldungen wie etwa ''{{W|Kernel_panic|Kernel Panic}}'' angezeigt.
|---
| class="hintergrundfarbe8"| {{Taste|G}}
! kgdb
| Schaltet bei neueren Kernelversionen auf die ''Framebuffer''–Textkonsole um und started den Kernel–Debugger ''kgdb'', falls vorhanden.
|---
| class="hintergrundfarbe8"| {{Taste|J}}
! "Just thaw it"
| Beendet bei neueren Kernelversionen das „Einfrieren“ eines Dateisystems durch die ''IOCTL''–Funktion ''FIFREEZE''.
|---
| class="hintergrundfarbe8"| {{Taste|V}}
! framebuffer, ETM dump
| Schaltet bei neueren Kernelversionen auf die ''{{W|Framebuffer#Linux-Framebuffer|Framebuffer}}''–Textkonsole um. Auf der {{W|ARM-Architektur|ARM–Architektur}} wird der ''ETM–Puffer'' angezeigt.
|---
| class="hintergrundfarbe8"| {{Taste|X}}
! XMON
| Bei neueren Kernelversionen für die ''XMON''–Schnittstelle der {{W|IBM_Power|Power}}/{{W|PowerPC|Power–PC}}–Architektur verwendet.
|---
| class="hintergrundfarbe8"| {{Taste|Y}}
! FTRACE dump
| Bei neueren Kernelversionen wird der ''FTRACE''–Puffer angezeigt.
|---
| class="hintergrundfarbe8"| {{Taste|Z}}
! show global CPU registers
| Bei neueren Kernelversionen werden auf der {{W|SPARC64_V|SPARC–64}}–Architektur die globalen CPU–Register angezeigt.
|}
== Konfiguration ==
=== Aktivieren und Deaktivieren ===
'''Status prüfen'''
  $ '''cat /proc/sys/kernel/sysrq'''
438


Dieser Befehl ist äquivalent zur Kombination Alt + Druck + B und startet den Rechner sofort neu.
* Ist die Ausgabe ungleich <tt>0</tt>, ist SysRQ aktiv, bei <tt>0</tt> nicht.
* Zur Deutung des zurückgelieferten Werts siehe [http://www.mjmwired.net/kernel/Documentation/sysrq.txt sysrq.txt].


Die genannten Befehle können auch über die [[Unix-Shell|Shell]] (und somit auch durch Skripte) ausgelöst werden.
'''Aktivierung'''
Dazu wird in virtuelle Datei <span style="font-family:monospace;">/proc/sysrq-trigger</span> vom [[Procfs|Kernel-Proc-API]] das entsprechende Zeichen geschrieben.
# '''echo 1 | sudo tee /proc/sys/kernel/sysrq'''
Dies ist nur als <span style="font-family:monospace;">[[Root-Konto|root]]</span> möglich.
Der folgende Befehl löst beispielsweise einen sofortigen Reboot aus.
<syntaxhighlight lang="bash">
echo b > /proc/sysrq-trigger
</syntaxhighlight>


== Magic SysRQ testen ==
'''Deaktivierung'''
Wer die SysRQ-Funktionen gezielt testen möchte, startet am besten eine [https://de.wikipedia.org/wiki/Forkbomb Forkbomb] auf dem Rechner, um diesen bewusst zu überlasten. Abschließend noch ein Auszug des Systemprotokolls eines Rechners mit [https://wiki.ubuntuusers.de/Trusty/ Ubuntu 14.04], aus dem deutlich zu erkennen ist, dass der ersten drei Tasten ("REI") ignoriert werden:
# '''echo 0 | sudo tee /proc/sys/kernel/sysrq'''
 
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
 
== Problembehebung ==
* 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.


= Dokumentation =
==== Wie aktiviere ich den magischen SysRq-Schlüssel? ====
== Man-Pages ==
* Sie müssen "Ja" zu 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' sagen, wenn Konfiguration des Kernels.
== Info-Pages ==
* Wenn Sie einen Kernel mit einkompiliertem SysRq ausführen, /proc/sys/kernel/sysrq steuert die Funktionen, die über aufgerufen werden dürfen der SysRq-Schlüssel.
== Projekt-Homepage ==
* Der Standardwert in dieser Datei wird von der festgelegt CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE Konfigurationssymbol, das selbst Standard ist zu 1.
 
= Links =
== Intern ==
== Weblinks ==
* [https://de.wikibooks.org/wiki/Linux-Praxisbuch/_Problembehandlung_beim_Neustart Problembehandlung beim Neustart] im Linux-Kompendium
* [https://wiki.ubuntuusers.de/Notfall/ Notfall] Übersichtsartikel
* [https://de.wikipedia.org/wiki/Magische_S-Abf-Taste Magische_S-Abf-Taste]
* [https://en.wikipedia.org/wiki/Magic_SysRq_key Magic_SysRq_key]
* [https://askubuntu.com/questions/4408/what-should-i-do-when-ubuntu-freezes 4408/what-should-i-do-when-ubuntu-freezes]
* [https://www.kernel.org/doc/Documentation/admin-guide/sysrq.rst Documentation/admin-guide/sysrq.rst] auf kernel.org (Linux Kernel Archives) (englisch)
* [http://kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.64/2.5.64-mm7/broken-out/proc-sysrq-trigger.patch Der Patch des Linux-Kernels, der das /proc/sysrq-trigger-Feature einbaute]
* [http://wiki.ubuntuusers.de/Magic_SysRq Magic SysRequest] im Wiki von Ubuntuusers.de
 
== Literatur ==
* Oliver Diedrich: ''Geht nicht? Gibts nicht! Hängende Linux-Systeme sicher ausschalten.'' In: ''[[c’t]]'' Nr.&nbsp;26, 2008, S.&nbsp;210
 
== Einzelnachweise ==
<references />
 
= Testfragen =
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
 
[[Kategorie:Linux:Kernel]]
[[Kategorie:Computer:Tasten]]
 
 
=TMP=
==Was ist der magische SysRq-Schlüssel?==
Es ist eine 'magische' Tastenkombination, die Sie drücken können und auf die der Kernel reagiert unabhängig davon, was es sonst noch tut, es sei denn, es ist vollständig gesperrt.
 
==Wie aktiviere ich den magischen SysRq-Schlüssel?==
Sie müssen "Ja" zu 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' sagen, wenn Konfiguration des Kernels. Wenn Sie einen Kernel mit einkompiliertem SysRq ausführen,
/proc/sys/kernel/sysrq steuert die Funktionen, die über aufgerufen werden dürfen der SysRq-Schlüssel. Der Standardwert in dieser Datei wird von der festgelegt CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE Konfigurationssymbol, das selbst Standard ist zu 1. Hier ist die Liste der möglichen Werte in /proc/sys/kernel/sysrq:


Liste der möglichen Werte aus /proc/sys/kernel/sysrq
   - 0 - sysrq vollständig deaktivieren
   - 0 - sysrq vollständig deaktivieren
   - 1 - aktiviert alle Funktionen von sysrq
   - 1 - aktiviert alle Funktionen von sysrq
   - >1 - Bitmaske der erlaubten sysrq-Funktionen (siehe unten für detaillierte Funktionen
   - >1 - Bitmaske der erlaubten sysrq-Funktionen
    Bezeichnung)::
 
           2 = 0x2 – aktiviert die Steuerung der Konsolenprotokollierungsebene
           2 = 0x2 – aktiviert die Steuerung der Konsolenprotokollierungsebene
           4 = 0x4 - Tastatursteuerung aktivieren (SAK, unraw)
           4 = 0x4 - Tastatursteuerung aktivieren (SAK, unraw)
Zeile 412: Zeile 488:
         128 = 0x80 - Neustart/Ausschalten zulassen
         128 = 0x80 - Neustart/Ausschalten zulassen
         256 = 0x100 - Netting aller RT-Tasks zulassen
         256 = 0x100 - Netting aller RT-Tasks zulassen
* siehe unten für detaillierte Funktionen Bezeichnung


Sie können den Wert in der Datei mit dem folgenden Befehl festlegen:
Sie können den Wert in der Datei mit dem folgenden Befehl festlegen:
     echo "Nummer" >/proc/sys/kernel/sysrq
     echo "Nummer" >/proc/sys/kernel/sysrq


Die Zahl kann hier entweder dezimal oder hexadezimal geschrieben werden mit dem Präfix 0xCONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE muss immer sein hexadezimal geschrieben.
* Die Zahl kann hier entweder dezimal oder hexadezimal geschrieben werden, mit dem Präfix 0x
* CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE muss immer sein hexadezimal geschrieben werden


Beachten Sie, dass der Wert von ``/proc/sys/kernel/sysrq`` nur den Aufruf beeinflusst
'''Hinweis'''
über eine TastaturAufruf jeder Operation über ``/proc/sysrq-trigger`` ist immer erlaubt (von einem Benutzer mit Administratorrechten).
* der Wert von ``/proc/sys/kernel/sysrq`` nur den Aufruf beeinflusst über eine Tastatur
* Aufruf jeder Operation über ``/proc/sysrq-trigger`` ist immer erlaubt (von einem Benutzer mit Administratorrechten)


==Wie verwende ich den magischen SysRq-Schlüssel?==
'''Aktivieren und Deaktivieren des ''Magic SysRq Key'' '''
Auf x86
deaktivieren
    Sie drücken die Tastenkombination :kbd:`ALT-SysRq-<Befehlstaste>`.
  # echo 0 > /proc/sys/kernel/sysrq
    .. Hinweis::
      Etwas
          Tastaturen haben möglicherweise keine Taste mit der Bezeichnung „SysRq“.  Der 'SysRq'-Schlüssel ist auch bekannt als die Taste „Drucken“. Auch manche Tastaturen können das nicht damit umgehen, dass so viele Tasten gleichzeitig gedrückt werden, also könnten Sie Viel Glück mit :kbd:`Alt` drücken, :kbd:`SysRq` drücken, :kbd:`SysRq` loslassen, :kbd:`<Befehlstaste>` drücken, alles loslassen.


Auf der seriellen Konsole (nur serielle Standardschnittstellen im PC-Stil)
aktivieren
        Sie senden ein ``BREAK``, dann innerhalb von 5 Sekunden eine Befehlstaste. Senden ``BREAK`` zweimal wird als normaler BREAK interpretiert.
  # echo 1 > /proc/sys/kernel/sysrq


Auf alle
=== Dateien ===
    Schreiben Sie ein Zeichen in /proc/sysrq-trigger.  z.B::
'''Permanentes Aktivieren und Deaktivieren'''


        echo t > /proc/sysrq-trigger
''/etc/sysctl.d/10-magic-sysrq.conf''
# see: http://www.mjmwired.net/kernel/Documentation/sysrq.txt
#kernel.sysrq = X
#
# Deaktivierung
kernel.sysrq = 0


Bei :kbd:`<Befehlstaste>` wird zwischen Groß- und Kleinschreibung unterschieden.
== Anwendung ==
{| class="wikitable sortable"
|-
! Befehl !! Beschreibung
|-
| unraw(r) || unraw(r) ist sehr praktisch, wenn Ihr X-Server oder ein svgalib-Programm abstürzt.
|-
| sak(k)|| ''sak(k)'' (Secure Access Key) ist nützlich, wenn Sie sicher sein wollen, dass es keinen gibt Trojanisches Programm, das auf der Konsole ausgeführt wird und Ihr Passwort abrufen könnte wenn Sie versuchen würden, sich anzumelden.  Es wird alle Programme auf der angegebenen Konsole beenden, So können Sie sicherstellen, dass die angezeigte Anmeldeaufforderung tatsächlich vorhanden ist die von init, nicht irgendein Trojaner-Programm.
'''Wichtig:'''
In seiner wahren Form ist es kein echter SAK wie der in a  c2-kompatibles System, und es sollte nicht verwechselt werden eine solche.
Es scheint, dass andere es als (System Attention Key) nützlich finden, was ist nützlich, wenn Sie ein Programm beenden möchten, mit dem Sie die Konsolen nicht wechseln können.
(Zum Beispiel X oder ein svgalib-Programm.)
|-
| reboot(b)|| ''reboot(b)'' ist gut, wenn Sie nicht herunterfahren können, es ist ein Äquivalent durch Drücken der „Reset“-Taste.
|-
| crash(c)|| ''crash(c)'' kann verwendet werden, um manuell einen Crashdump auszulösen, wenn das System hängt. Beachten Sie, dass dies nur einen Absturz auslöst, wenn kein Dump-Mechanismus verfügbar ist.
|-
| sync(s)|| ''sync(s)'' ist praktisch vor dem Ziehen von Wechseldatenträgern oder nach der Verwendung einer Rettung Shell, die kein ordnungsgemäßes Herunterfahren bietet - sie stellt sicher, dass Ihre Daten erhalten bleiben sicher auf die Festplatte geschrieben.  Beachten Sie, dass die Synchronisierung nicht stattgefunden hat, bis Sie sehen
„OK“ und „Fertig“ erscheinen auf dem Bildschirm.
|-
| umount(u)|| ''umount(u)'' kann verwendet werden, um Dateisysteme als ordnungsgemäß ausgehängt zu markieren.  Von dem Aus Sicht des laufenden Systems werden sie schreibgeschützt neu gemountet.  Der Wiederaufstieg ist erst abgeschlossen, wenn die Meldungen „OK“ und „Fertig“ auf dem Bildschirm erscheinen.
|-
| Loglevel ''0''-''9''|| * Die Loglevel ''0''-''9'' sind nützlich, wenn Ihre Konsole mit überschwemmt wird Kernel-Meldungen, die Sie nicht sehen möchten.
* Die Auswahl von „0“ verhindert alle außer die dringendsten Kernel-Meldungen Ihre Konsole erreichen.
** Sie werden trotzdem protokolliert, wenn syslogd/klogd aktiv sind
|-
| ''term(e)'' und ''kill(i)''|| ''term(e)'' und ''kill(i)'' sind nützlich, wenn Sie eine Art außer Kontrolle geratenen Prozess haben Sie können auf keine andere Weise töten, besonders wenn es andere spawnt Prozesse.
|-
| just thaw ''it(j)''" || "just thaw ''it(j)''" ist nützlich, wenn Ihr System aufgrund von a. nicht mehr reagiert eingefrorenes (wahrscheinlich root) Dateisystem über das FIFREEZE ioctl.
|-
|}
=== 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 {{Taste|Alt|halten}} + {{Taste|S-Abf|halten}} gedrückt zu halten und dabei nacheinander die Tasten {{Taste|R}}, {{Taste|E}}, {{Taste|I}}, {{Taste|S}}, {{Taste|U}} und {{Taste|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.<ref>[http://ubuntuforums.org/showthread.php?t=617349 Ubuntuforums.org], Guide zum Magic SysrRq Key (englisch)</ref> 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.<ref>[http://www.linuxhowtos.org/Tips%20and%20Tricks/sysrq.htm Linuxhowtos.org](englisch) oder [http://www.pro-linux.de/kurztipps/2/1235/der-magic-sysrq-key.html pro-linux.de], Aussage zu: "unmount enthält sync"</ref>
* Es existiert kein Konsens darüber, welche Kombination zu bevorzugen ist.


==Was sind die "Befehlstasten"?==
=== Merksprüche ===
* Die einzelnen ''Magic–SysRq''–Tastenkombinationen werden oft in bestimmter Reihenfolge zusammen eingegeben, um bestimmte Aktionen auszuführen.
* Für diese Sequenzen haben sich einige Merksprüche herausgebildet.
* Die am häufigsten mithilfe einer solchen Sequenz bezweckte Aktion ist vermutlich ein sicherer Notfall–Neustart des Systems: {{Taste|S-Abf}} + {{Taste|R}} + {{Taste|E}} + {{Taste|I}} + {{Taste|S}} + {{Taste|U}} + {{Taste|B}}


Die hierzu benötigte Reihenfolge der Tasten lässt sich etwa mit dem englischen Satz „'''R'''aising '''E'''lephants '''I'''s '''S'''o '''U'''tterly '''B'''oring“ merken, wobei jeweils der erste Buchstabe eines Wortes für die S–Abf–Kombination mit der entsprechenden Taste steht.


``b`` Startet das System sofort neu, ohne es zu synchronisieren oder abzumelden Ihre Festplatten.
Auch „'''E'''verything '''i'''s '''s'''uper, '''u'''ncle '''B'''en“ ist ein verbreiteter Satz für diesen Zweck.


``c`` Führt einen Systemabsturz durch und es wird ein Crashdump erstellt falls konfiguriert.
=== Zugriff aus der Kommandozeile ===
Wenn die S-Abf Taste aus verschiedenen Gründen nicht betätigt werden kann, eine {{W|Kommandozeile}} jedoch zur Verfügung steht, können die "magischen" Kommandos auch mithilfe dieser Kommandozeile ausgeführt werden. Um ein Magic Command auszuführen, wird mithilfe der {{W|Standard-Datenströme}} der Code der gewünschte Taste in den SysRq-Trigger im {{W|procfs}} geschrieben. Für diese Befehle sind aus Sicherheitsgründen root-Rechte nötig. Als Beispiel:


``d`` Zeigt alle Sperren, die gehalten werden.
echo b > /proc/sysrq-trigger


``e`` Sendet ein SIGTERM an alle Prozesse außer init.
Dieser Befehl ist äquivalent zur Kombination {{Taste|Alt}} + {{Taste|Druck}} + {{Taste|B}}, welche den Computer (ohne Rücksicht auf Datenverluste) neu startet.


``f`` Ruft den Oom-Killer auf, um einen Speicherfresser-Prozess zu beenden, tut es aber nicht Panik, wenn nichts getötet werden kann.
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'''


``g`` Wird von kgdb (Kernel-Debugger) verwendet
Dieser Befehl ist äquivalent zur Kombination Alt + Druck + B und startet den Rechner sofort neu.


``h`` Zeigt Hilfe an (eigentlich jede andere Taste als die aufgeführten Hier wird Hilfe angezeigt. aber ``h`` ist leicht zu merken :-)
Die genannten Befehle können auch über die [[Unix-Shell|Shell]] (und somit auch durch Skripte) ausgelöst werden.
Dazu wird in virtuelle Datei <span style="font-family:monospace;">/proc/sysrq-trigger</span> vom [[Procfs|Kernel-Proc-API]] das entsprechende Zeichen geschrieben.
Dies ist nur als <span style="font-family:monospace;">[[Root-Konto|root]]</span> möglich.
Der folgende Befehl löst beispielsweise einen sofortigen Reboot aus.
<syntaxhighlight lang="bash">
echo b > /proc/sysrq-trigger
</syntaxhighlight>


``i`` Sende ein SIGKILL an alle Prozesse, außer an init.
=== Magic SysRQ testen ===
* Wer die SysRQ-Funktionen gezielt testen möchte, kann eine [https://de.wikipedia.org/wiki/Forkbomb Forkbomb] auf dem eigenen Rechner starten, um diesen bewusst zu überlasten.


``j`` Zwangsweise "einfach auftauen" - Dateisysteme durch das FIFREEZE ioctl eingefroren.
'''Auszug eines Systemprotokolls'''


``k`` Secure Access Key (SAK) Beendet alle Programme auf dem aktuellen virtuellen KonsoleHINWEIS: Siehe wichtige Kommentare unten im SAK-Abschnitt.
Es ist zu erkennen, 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


``l`` Zeigt einen Stack-Backtrace für alle aktiven CPUs.
=== Problembehebung ===
Auf Tastaturen für die Schweiz und englischsprachige Länder entspricht die Taste {{Taste|SysRq}} dem deutschen Pendant {{Taste|S-Abf}}. Die Beschriftung ist zum Beispiel in der Schweiz {{Taste|PrtScr SysRq}}. Die Kombination auf schweizerischer Tastatur ist: {{Taste|Alt Gr|halten}} + {{Taste|PrtScr SysRq|halten}}.


``m`` Gibt aktuelle Speicherinformationen auf Ihre Konsole aus.
Besonders auf [[Laptop]]s müssen wegen herstellerspezifischen Tastaturlayouts ggf. noch Zusatztasten gedrückt werden, so etwa auf [[Dell]]-Laptops zunächst {{Taste|Num}}, anschließend {{Taste|Fn|halten}} + {{Taste|Alt|halten}} + {{Taste|Druck|halten}} + {{Taste|''entsprechender Buchstabe''}}; auf z.&nbsp;B.&nbsp;[[ThinkPad]]s kann folgende Abfolge verwendet werden: {{Taste|Alt|halten}} drücken und halten, {{Taste|Fn|halten}} + {{Taste|Druck}} drücken und wieder loslassen, {{Taste|''entsprechenden Buchstaben''}} drücken, alle loslassen.
* 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.


``n`` Wird verwendet, um RT-Aufgaben angenehm zu machen
==== Keine Reaktion auf SysRq ====
* Es gibt einige Tastaturen, die einen anderen Tastencode für SysRq erzeugen als die vordefinierter Wert von 99 (siehe ``KEY_SYSRQ`` in ``include/uapi/linux/input-event-codes.h``), oder die überhaupt keinen SysRq-Schlüssel haben.
* Führen Sie in diesen Fällen ``showkey -s`` aus, um zu finden eine geeignete Scancode-Sequenz und
* verwenden Sie ``setkeycodes <sequence> 99`` zum Zuordnen diese Sequenz zum üblichen SysRq-Code (zB ``setkeycodes e05b 99``).
* Es ist wahrscheinlich am besten, diesen Befehl in ein Boot-Skript zu packen.


``o`` Schaltet Ihr System ab (falls konfiguriert und unterstützt).
'''Hinweis'''
''showkey'' wird beendet, indem Sie zehn Sekunden lang nichts eingeben wird


``p`` Gibt die aktuellen Register und Flags auf Ihre Konsole aus.
==== Nach SysRq erscheint nur die Kopfzeile auf der Konsole ====
* Die Sysrq-Ausgabe unterliegt der gleichen Konsolen-Loglevel-Steuerung wie all andere Konsolenausgabe.
* Das heißt, wenn der Kernel 'leise' gebootet wurde Wie es bei Distributionskernen üblich ist, erscheint die Ausgabe möglicherweise nicht auf dem tatsächlichen Konsole, obwohl es im dmesg-Puffer erscheint und zugänglich ist
über den dmesg-Befehl und an die Verbraucher von ``/proc/kmsg``.
* Als spezifisch Ausnahme: Die Kopfzeile des sysrq-Befehls wird an alle Konsolen übergeben Verbraucher, als ob der aktuelle Loglevel maximal wäre.
* Wenn nur der Header ausgegeben wird, ist es ziemlich sicher, dass der Kernel-Loglevel zu niedrig ist.
* Sollten Sie die Ausgabe auf dem Konsolenkanal benötigen, benötigen Sie um den Loglevel der Konsole mit :kbd:`alt-sysrq-8` oder:
    echo 8 > /proc/sysrq-trigger


``q`` Gibt pro CPU-Listen aller aktivierten Timer aus (aber NICHT reguläre timer_list Timer) und detaillierte Informationen zu allen clockevent-Geräte.
Denken Sie daran, den Loglevel nach dem Auslösen von sysrq wieder auf normal zurückzusetzen Befehl, an dem Sie interessiert sind.


``r`` Deaktiviert den Tastatur-Rohmodus und setzt ihn auf XLATE.
==== SysRq scheint „hängen“ zu bleiben ====
* Versuchen Sie auf beiden Seiten der Shift-, Alt- und Control-Taste zu tippen Tastatur und erneutes Drücken einer ungültigen sysrq-Sequenz
  alt-sysrq-z
* Wechseln zu einer anderen virtuellen Konsole (ALT+Fn) und dann wieder zurück soll auch helfen.


``s`` Versucht alle gemounteten Dateisysteme zu synchronisieren.
==== Weitere Fragen ====
Linux-Kernel-Mailingliste: linux-kernel@vger.kernel.org


``t`` Gibt eine Liste aktueller Aufgaben und deren Informationen an Ihren aus Konsole.
== Dokumentation ==
=== Man-Page ===
=== Info-Pages ===
=== Projekt ===


``u`` Versucht, alle gemounteten Dateisysteme schreibgeschützt neu einzuhängen.
== Links ==
 
=== Intern ===
``v`` Stellt die Framebuffer-Konsole zwangsweise wieder her
=== Weblinks ===
``v`` Verursacht ETM Buffer Dump [ARM-spezifisch]
* [https://de.wikibooks.org/wiki/Linux-Praxisbuch/_Problembehandlung_beim_Neustart Problembehandlung beim Neustart] im Linux-Kompendium
 
* [https://de.wikipedia.org/wiki/Magische_S-Abf-Taste Magische_S-Abf-Taste]
``w`` Gibt Tasks aus, die sich in einem unterbrechungsfreien (blockierten) Zustand befinden.
* [https://en.wikipedia.org/wiki/Magic_SysRq_key Magic_SysRq_key]
 
* [https://askubuntu.com/questions/4408/what-should-i-do-when-ubuntu-freezes 4408/what-should-i-do-when-ubuntu-freezes]
``x`` Wird von der xmon-Schnittstelle auf ppc/powerpc-Plattformen verwendet. Globale PMU-Register auf sparc64 anzeigen. Sichern Sie alle TLB-Einträge auf MIPS.
* [https://www.kernel.org/doc/Documentation/admin-guide/sysrq.rst Documentation/admin-guide/sysrq.rst] auf kernel.org (Linux Kernel Archives) (englisch)
 
* [http://kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.64/2.5.64-mm7/broken-out/proc-sysrq-trigger.patch Der Patch des Linux-Kernels, der das /proc/sysrq-trigger-Feature einbaute]
``y`` Globale CPU Register anzeigen [SPARC-64 spezifisch]
* [http://wiki.ubuntuusers.de/Magic_SysRq Magic SysRequest] im Wiki von Ubuntuusers.de
 
* http://wiki.ubuntuusers.de/Notfall
``z`` Den ftrace-Puffer ausgeben
 
``0``-``9`` Legt die Konsolenprotokollebene fest, die steuert, welche Kernelmeldungen angezeigt werden wird auf Ihre Konsole gedruckt. (``0``, zum Beispiel würde machen es so, dass nur Notfallmeldungen wie PANICs oder OOPSes würden schaffe es auf deine Konsole.)
 
==Okay, wofür kann ich sie verwenden?==
Nun, unraw(r) ist sehr praktisch, wenn Ihr X-Server oder ein svgalib-Programm abstürzt.
 
sak(k) (Secure Access Key) ist nützlich, wenn Sie sicher sein wollen, dass es keinen gibt Trojanisches Programm, das auf der Konsole ausgeführt wird und Ihr Passwort abrufen könnte wenn Sie versuchen würden, sich anzumelden.  Es wird alle Programme auf der angegebenen Konsole beenden, So können Sie sicherstellen, dass die angezeigte Anmeldeaufforderung tatsächlich vorhanden ist die von init, nicht irgendein Trojaner-Programm.
 
'''wichtig'''
In seiner wahren Form ist es kein echter SAK wie der in a  c2-kompatibles System, und es sollte nicht verwechselt werden eine solche.
 
Es scheint, dass andere es als (System Attention Key) nützlich finden, was ist nützlich, wenn Sie ein Programm beenden möchten, mit dem Sie die Konsolen nicht wechseln können.
(Zum Beispiel X oder ein svgalib-Programm.)
 
==\1==
``reboot(b)`` ist gut, wenn Sie nicht herunterfahren können, es ist ein Äquivalent durch Drücken der „Reset“-Taste.


``crash(c)`` kann verwendet werden, um manuell einen Crashdump auszulösen, wenn das System hängt. Beachten Sie, dass dies nur einen Absturz auslöst, wenn kein Dump-Mechanismus verfügbar ist.


``sync(s)`` ist praktisch vor dem Ziehen von Wechseldatenträgern oder nach der Verwendung einer Rettung Shell, die kein ordnungsgemäßes Herunterfahren bietet - sie stellt sicher, dass Ihre Daten erhalten bleiben sicher auf die Festplatte geschrieben.  Beachten Sie, dass die Synchronisierung nicht stattgefunden hat, bis Sie sehen
„OK“ und „Fertig“ erscheinen auf dem Bildschirm.


``umount(u)`` kann verwendet werden, um Dateisysteme als ordnungsgemäß ausgehängt zu markieren.  Von dem Aus Sicht des laufenden Systems werden sie schreibgeschützt neu gemountet.  Der Wiederaufstieg ist erst abgeschlossen, wenn die Meldungen „OK“ und „Fertig“ auf dem Bildschirm erscheinen.
Die Loglevel ``0``-``9`` sind nützlich, wenn Ihre Konsole mit überschwemmt wird Kernel-Meldungen, die Sie nicht sehen möchten.  Die Auswahl von „0“ verhindert alle außer die dringendsten Kernel-Meldungen Ihre Konsole erreichen.  (Sie werden trotzdem protokolliert, wenn syslogd/klogd aktiv sind.)
``term(e)`` und ``kill(i)`` sind nützlich, wenn Sie eine Art außer Kontrolle geratenen Prozess haben Sie können auf keine andere Weise töten, besonders wenn es andere spawnt Prozesse.
"just thaw ``it(j)``" ist nützlich, wenn Ihr System aufgrund von a. nicht mehr reagiert eingefrorenes (wahrscheinlich root) Dateisystem über das FIFREEZE ioctl.
==Manchmal scheint SysRq nach der Verwendung „hängen“ zu bleiben, was kann ich tun?==
Versuchen Sie in diesem Fall, auf beiden Seiten der Shift-, Alt- und Control-Taste zu tippen Tastatur und erneutes Drücken einer ungültigen sysrq-Sequenz.  (also sowas wie :kbd:`alt-sysrq-z`).
Wechseln zu einer anderen virtuellen Konsole (:kbd:`ALT+Fn`) und dann wieder zurück soll auch helfen.
==Ich habe SysRq gedrückt, aber es scheint nichts zu passieren, was ist los?==
Es gibt einige Tastaturen, die einen anderen Tastencode für SysRq erzeugen als die vordefinierter Wert von 99 (siehe ``KEY_SYSRQ`` in ``include/uapi/linux/input-event-codes.h``), oder die überhaupt keinen SysRq-Schlüssel haben.  Führen Sie in diesen Fällen ``showkey -s`` aus, um zu finden eine geeignete Scancode-Sequenz und verwenden Sie ``setkeycodes <sequence> 99`` zum Zuordnen diese Sequenz zum üblichen SysRq-Code (zB ``setkeycodes e05b 99``).  Es ist wahrscheinlich am besten, diesen Befehl in ein Boot-Skript zu packen.  Ach, und übrigens, du Beenden Sie ``showkey``, indem Sie zehn Sekunden lang nichts eingeben.
==Ich möchte SysRQ-Schlüsselereignisse zu einem Modul hinzufügen, wie funktioniert das?==
Um eine Grundfunktion bei der Tabelle zu registrieren, müssen Sie diese zunächst einbinden den Header ``include/linux/sysrq.h``, dieser definiert alles andere, was Sie brauchen. Als nächstes müssen Sie ein ``sysrq_key_op``-Struct erstellen und es mit A) dem Schlüssel füllen Handler-Funktion, die Sie verwenden werden, B) eine help_msg-Zeichenfolge, die gedruckt wird, wenn SysRQ druckt help, und C) eine action_msg-Zeichenfolge, die direkt vor Ihrer gedruckt wird Handler wird gerufen.  Ihr Handler muss dem Prototyp in 'sysrq.h' entsprechen.
Nachdem ``sysrq_key_op`` erstellt wurde, können Sie die Kernel-Funktion aufrufen
``register_sysrq_key(int key, const struct sysrq_key_op *op_p);`` das wird die Operation, auf die ``op_p`` zeigt, beim Tabellenschlüssel 'key' registrieren, wenn dieser Platz in der Tabelle leer ist.  Zum Zeitpunkt des Entladens des Moduls müssen Sie anrufen die Funktion ``unregister_sysrq_key(int key, const struct sysrq_key_op *op_p)``, wodurch der Schlüssel op, auf den 'op_p' zeigt, aus dem Schlüssel 'key' entfernt wird, wenn und nur wenn es derzeit in diesem Steckplatz registriert ist.  Dies ist für den Fall, dass der Slot hat wurde seit der Registrierung überschrieben.
Das Magic SysRQ-System funktioniert, indem es Tastenbetätigungen gegen eine Tastenbetätigung registriert Lookup-Tabelle, die in 'drivers/tty/sysrq.c' definiert ist.  Diese Schlüsseltabelle hat eine Reihe von Operationen, die zur Kompilierzeit darin registriert sind, aber veränderlich sind, und 2 Funktionen werden für die Schnittstelle dazu exportiert: register_sysrq_key und unregister_sysrq_key.
Lassen Sie natürlich niemals einen ungültigen Zeiger in der Tabelle.  Dh wann Ihr Modul, das register_sysrq_key() aufgerufen hat, beendet wird, muss es aufrufen unregister_sysrq_key(), um den verwendeten sysrq-Schlüsseltabelleneintrag zu bereinigen. Nullzeiger in der Tabelle sind immer sicher.  :)
Wenn Sie aus irgendeinem Grund das Bedürfnis verspüren, die Funktion handle_sysrq von aufzurufen Innerhalb einer Funktion, die von handle_sysrq aufgerufen wird, müssen Sie sich bewusst sein, dass Sie sich darin befinden eine Sperre (Sie befinden sich auch in einem Interrupt-Handler, was bedeutet, dass Sie nicht schlafen!), also Sie müssen stattdessen ``__handle_sysrq_nolock`` aufrufen.
==Wenn ich eine SysRq-Tastenkombination drücke, erscheint nur die Kopfzeile auf der Konsole?==
Die Sysrq-Ausgabe unterliegt der gleichen Konsolen-Loglevel-Steuerung wie all andere Konsolenausgabe.  Das heißt, wenn der Kernel 'leise' gebootet wurde Wie es bei Distributionskernen üblich ist, erscheint die Ausgabe möglicherweise nicht auf dem tatsächlichen Konsole, obwohl es im dmesg-Puffer erscheint und zugänglich ist
über den dmesg-Befehl und an die Verbraucher von ``/proc/kmsg``.  Als spezifisch Ausnahme: Die Kopfzeile des sysrq-Befehls wird an alle Konsolen übergeben Verbraucher, als ob der aktuelle Loglevel maximal wäre.  Wenn nur der Header ausgegeben wird, ist es ziemlich sicher, dass der Kernel-Loglevel zu niedrig ist. Sollten Sie die Ausgabe auf dem Konsolenkanal benötigen, benötigen Sie um den Loglevel der Konsole mit :kbd:`alt-sysrq-8` oder:
    echo 8 > /proc/sysrq-trigger
Denken Sie daran, den Loglevel nach dem Auslösen von sysrq wieder auf normal zurückzusetzen Befehl, an dem Sie interessiert sind.


==Ich habe weitere Fragen, an wen kann ich mich wenden?==
[[Kategorie:Linux/Kernel]]
Fragen Sie sie einfach auf der Linux-Kernel-Mailingliste:
    linux-kernel@vger.kernel.org

Aktuelle Version vom 12. November 2024, 18:36 Uhr

Magic SysRequest key (Magische S-Abf-Taste) ist eine Funktion des Linux Kernels in Fehlersituationen Befehle per Tastenkombinationen entgegennehmen zu können.

Beschreibung

Tastenkombination, auf die der Kernel reagiert, unabhängig davon, was es sonst noch tut, solange er nicht komplett abgestürzt ist.

  • Damit lassen sich verschiedene Funktionen ausführen
    • Neustart

Dabei können die Funktionen nacheinander in sinnvoller Reihenfolge ausgeführt werden.

  • Häufig nutzt man diese Tastenkombination für einen Neustart, ohne Schäden am Dateisystem zu verursachen, oder um einen nicht mehr reagierenden X-Server zu beenden.
mit der {{#if:trim|S-Abf}}-Taste

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

  • 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.

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

Es kann immer mal passieren, dass das System nicht mehr reagiert, weil zum Beispiel ein Treiber defekt, eine Programminstallation fehlgeschlagen ist oder etwas nicht richtig konfiguriert wurde. Auf keinen Fall sollte man sofort zum Hardwarereset greifen oder den Strom ausschalten.

S-Abf}} ist rot eingekringelt

Im Linux-Kernel wurden Tastenkombination verankert, die höchste Priorität haben. Mit ihnen lässt sich auch in grob verhakten Situationen ein sauberer Neustart durchführen. Diese sind unter dem Begriff magic SysRq key oder magische S-Abf-Taste bekannt, wobei {{#if:trim|S-Abf}} eine Alternativbelegung von {{#if:trim|Druck}} ist. Man hält also gleichzeitig {{#if:trim|Alt}} + {{#if:trim|Druck}} gedrückt und betätigt währenddessen eine alphanumerische Taste, meist mehrere Kombinationen aus Buchstaben und Zahlen nacheinander.

Aufruf

Auslösen eines magischen SysRq-Schlüssels

Sie drücken die Tastenkombination ALT-SysRq-<Befehlstaste>

  • <Befehlstaste> unterscheidet zwischen Groß- und Kleinschreibung

Hinweis

  • Tastaturen haben möglicherweise keine Taste mit der Bezeichnung „SysRq“.
  • Der 'SysRq'-Schlüssel ist auch bekannt als die Taste „Drucken“.
  • Auch manche Tastaturen können das nicht damit umgehen, dass so viele Tasten gleichzeitig gedrückt werden, also könnten Sie

Viel Glück mit `Alt` drücken, `SysRq` drücken, `SysRq` loslassen, `<Befehlstaste>` drücken, alles loslassen.

Schreiben Sie ein Zeichen in /proc/sysrq-trigger. z.B::

echo t > /proc/sysrq-trigger

Befehlstasten

Taste Beschreibung
b Startet das System sofort neu, ohne es zu synchronisieren oder abzumelden Ihre Festplatten.
c Führt einen Systemabsturz durch und es wird ein Crashdump erstellt falls konfiguriert.
d Zeigt alle Sperren, die gehalten werden.
e Sendet ein SIGTERM an alle Prozesse außer init.
f Ruft den Oom-Killer auf, um einen Speicherfresser-Prozess zu beenden, tut es aber nicht Panik, wenn nichts getötet werden kann.
g Wird von kgdb (Kernel-Debugger) verwendet
h Zeigt Hilfe an (eigentlich jede andere Taste als die aufgeführten Hier wird Hilfe angezeigt, aber h ist leicht zu merken :-)
i Sende ein SIGKILL an alle Prozesse, außer an init.
j Zwangsweise "einfach auftauen" - Dateisysteme durch das FIFREEZE ioctl eingefroren.
k Secure Access Key (SAK) Beendet alle Programme auf dem aktuellen virtuellen Konsole. HINWEIS: Siehe wichtige Kommentare unten im SAK-Abschnitt.
l Zeigt einen Stack-Backtrace für alle aktiven CPUs.
m Gibt aktuelle Speicherinformationen auf Ihre Konsole aus.
n Wird verwendet, um RT-Aufgaben angenehm zu machen
o Schaltet Ihr System ab (falls konfiguriert und unterstützt).
p Gibt die aktuellen Register und Flags auf Ihre Konsole aus.
q Gibt pro CPU-Listen aller aktivierten Timer aus (aber NICHT reguläre timer_list Timer) und detaillierte Informationen zu allen clockevent-Geräte.
r Deaktiviert den Tastatur-Rohmodus und setzt ihn auf XLATE.
s Versucht alle gemounteten Dateisysteme zu synchronisieren.
t Gibt eine Liste aktueller Aufgaben und deren Informationen an Ihren aus Konsole.
u Versucht, alle gemounteten Dateisysteme schreibgeschützt neu einzuhängen.
v Stellt die Framebuffer-Konsole zwangsweise wieder her. Verursacht ETM Buffer Dump [ARM-spezifisch]
w Gibt Tasks aus, die sich in einem unterbrechungsfreien (blockierten) Zustand befinden.
x Wird von der xmon-Schnittstelle auf ppc/powerpc-Plattformen verwendet. Globale PMU-Register auf sparc64 anzeigen. Sichern Sie alle TLB-Einträge auf MIPS.
y Globale CPU Register anzeigen [SPARC-64 spezifisch]
z Den ftrace-Puffer ausgeben
0-9 Legt die Konsolenprotokollebene fest, die steuert, welche Kernelmeldungen angezeigt werden wird auf Ihre Konsole gedruckt. (0, zum Beispiel würde machen es so, dass nur Notfallmeldungen wie PANICs oder OOPSes würden schaffe es auf deine Konsole.)

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}}.

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[1][2]
!Taste !Funktion !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[3] neu (sofern vorhanden) und gib einen Crashdump auf dem Bildschirm aus. Ansonsten provoziere einen Absturz durch eine Null-Pointer-Dereferenzierung.[4]
{{#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.[5]
{{#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.

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.


Alphanumerische Tasten und ihre Funktion
Taste Funktion Bedeutung
{{#if:trim|R}} unraw Verlasse den Keyboard–Raw–Modus, der unter Vorlage:W und SVGAlib aktiv ist, in den Keyboard–XLATE–Modus, der im Vorlage:W 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|K}} secure attention key Beende alle Prozesse auf dem aktuellen Terminal, um sicher zu sein, dass der Vorlage:WVorlage:W von Vorlage:W stammt und nicht von einem Vorlage:W. Eine aufgehängte Anwendung, welche die SVGAlib benutzt oder ein nicht mehr reagierender X–Server lassen sich auch auf diese Weise beenden.
{{#if:trim|B}} reboot Fahre den Rechner sofort herunter, ohne Daten aus dem Kernel–Festplatten–Vorlage:W auf die Festplatten zu schreiben und ohne Partitionen auszuhängen, und starte den Rechner neu.
{{#if:trim|O}} poweroff Fahre den Rechner mit Vorlage:W oder Vorlage:W herunter und schalte ihn aus (wenn vom Rechner und Kernel unterstützt).
{{#if:trim|S}} sync Schreibe alle noch nicht auf die Festplatte geschriebenen Daten aus dem Kernel-Festplatten-Cache auf die Festplatten
{{#if:trim|U}} umount Alle schreibbar eingebundenen Vorlage:W werden ausgehängt und anschließend nur-lesend wieder eingehängt.
{{#if:trim|M}} memory Gib die Hauptspeicherbelegung in der Konsole aus.
{{#if:trim|E}} term Sende Vorlage:W an alle Prozesse außer Init
{{#if:trim|I}} kill Sende Vorlage:W an alle Prozesse außer Init
{{#if:trim|L}} kill including init Sende Vorlage:W an alle Prozesse, auch an Init. Das kommt einem Ausschalten gleich. Neuere Kernelversionen zeigen einen Vorlage:W an.
{{#if:trim|C}} crashdump Starte mithilfe von kexec[6] neu (sofern vorhanden) und gib einen Crashdump auf dem Bildschirm aus. Ansonsten provoziere einen Absturz durch eine Null-Pointer-Dereferenzierung.[7]
{{#if:trim|D}} Zeige (im Textmodus) alle derzeitigen Vorlage:W an.
{{#if:trim|Q}} Zeige alle derzeitig laufenden Vorlage:W an.
{{#if:trim|P}} Zeige den Inhalt der Vorlage:W inklusive der Vorlage:W an.
{{#if:trim|T}} Zeige eine Liste aktuell laufender Prozesse an.
{{#if:trim|W}} Zeige blockierte Prozesse an, die sich, beispielsweise während Festplattenzugriffen, im „ununterbrechbaren Schlaf“ befinden.
{{#if:trim|N}} Hiermit lässt sich die Vorlage:W von Vorlage:W–Prozessen herabsetzen.
{{#if:trim|H}} help H}} wird höchstwahrscheinlich auch in Zukunft nicht anderweitig belegt werden und lässt sich aufgrund der Eselsbrücke zu „Hilfe“ bzw. „Help“ gut merken.
{{#if:trim|0}}{{#if:trim|9}} set log level 0}} werden nur noch kritische Meldungen wie etwa Vorlage:W angezeigt.
{{#if:trim|G}} kgdb Schaltet bei neueren Kernelversionen auf die Framebuffer–Textkonsole um und started den Kernel–Debugger kgdb, falls vorhanden.
{{#if:trim|J}} "Just thaw it" Beendet bei neueren Kernelversionen das „Einfrieren“ eines Dateisystems durch die IOCTL–Funktion FIFREEZE.
{{#if:trim|V}} framebuffer, ETM dump Schaltet bei neueren Kernelversionen auf die Vorlage:W–Textkonsole um. Auf der Vorlage:W wird der ETM–Puffer angezeigt.
{{#if:trim|X}} XMON Bei neueren Kernelversionen für die XMON–Schnittstelle der Vorlage:W/Vorlage:W–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 Vorlage:W–Architektur die globalen CPU–Register angezeigt.

Konfiguration

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

Wie aktiviere ich den magischen SysRq-Schlüssel?

  • Sie müssen "Ja" zu 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' sagen, wenn Konfiguration des Kernels.
  • Wenn Sie einen Kernel mit einkompiliertem SysRq ausführen, /proc/sys/kernel/sysrq steuert die Funktionen, die über aufgerufen werden dürfen der SysRq-Schlüssel.
  • Der Standardwert in dieser Datei wird von der festgelegt CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE Konfigurationssymbol, das selbst Standard ist zu 1.

Liste der möglichen Werte aus /proc/sys/kernel/sysrq

  - 0 - sysrq vollständig deaktivieren
  - 1 - aktiviert alle Funktionen von sysrq
  - >1 - Bitmaske der erlaubten sysrq-Funktionen
         2 = 0x2 – aktiviert die Steuerung der Konsolenprotokollierungsebene
         4 = 0x4 - Tastatursteuerung aktivieren (SAK, unraw)
         8 = 0x8 - Debugging-Dumps von Prozessen usw. aktivieren.
        16 = 0x10 - Synchronisierungsbefehl aktivieren
        32 = 0x20 - Remount schreibgeschützt aktivieren
        64 = 0x40 - Signalisierung von Prozessen aktivieren (term, kill, oom-kill)
       128 = 0x80 - Neustart/Ausschalten zulassen
       256 = 0x100 - Netting aller RT-Tasks zulassen
  • siehe unten für detaillierte Funktionen Bezeichnung

Sie können den Wert in der Datei mit dem folgenden Befehl festlegen:

   echo "Nummer" >/proc/sys/kernel/sysrq
  • Die Zahl kann hier entweder dezimal oder hexadezimal geschrieben werden, mit dem Präfix 0x
  • CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE muss immer sein hexadezimal geschrieben werden

Hinweis

  • der Wert von ``/proc/sys/kernel/sysrq`` nur den Aufruf beeinflusst über eine Tastatur
  • Aufruf jeder Operation über ``/proc/sysrq-trigger`` ist immer erlaubt (von einem Benutzer mit Administratorrechten)

Aktivieren und Deaktivieren des Magic SysRq Key deaktivieren

# echo 0 > /proc/sys/kernel/sysrq

aktivieren

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

Dateien

Permanentes Aktivieren und Deaktivieren

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

# see: http://www.mjmwired.net/kernel/Documentation/sysrq.txt
#kernel.sysrq = X
#
# Deaktivierung
kernel.sysrq = 0

Anwendung

Befehl Beschreibung
unraw(r) unraw(r) ist sehr praktisch, wenn Ihr X-Server oder ein svgalib-Programm abstürzt.
sak(k) sak(k) (Secure Access Key) ist nützlich, wenn Sie sicher sein wollen, dass es keinen gibt Trojanisches Programm, das auf der Konsole ausgeführt wird und Ihr Passwort abrufen könnte wenn Sie versuchen würden, sich anzumelden. Es wird alle Programme auf der angegebenen Konsole beenden, So können Sie sicherstellen, dass die angezeigte Anmeldeaufforderung tatsächlich vorhanden ist die von init, nicht irgendein Trojaner-Programm.
Wichtig:
In seiner wahren Form ist es kein echter SAK wie der in a  c2-kompatibles System, und es sollte nicht verwechselt werden eine solche.
Es scheint, dass andere es als (System Attention Key) nützlich finden, was ist nützlich, wenn Sie ein Programm beenden möchten, mit dem Sie die Konsolen nicht wechseln können.
(Zum Beispiel X oder ein svgalib-Programm.)
reboot(b) reboot(b) ist gut, wenn Sie nicht herunterfahren können, es ist ein Äquivalent durch Drücken der „Reset“-Taste.
crash(c) crash(c) kann verwendet werden, um manuell einen Crashdump auszulösen, wenn das System hängt. Beachten Sie, dass dies nur einen Absturz auslöst, wenn kein Dump-Mechanismus verfügbar ist.
sync(s) sync(s) ist praktisch vor dem Ziehen von Wechseldatenträgern oder nach der Verwendung einer Rettung Shell, die kein ordnungsgemäßes Herunterfahren bietet - sie stellt sicher, dass Ihre Daten erhalten bleiben sicher auf die Festplatte geschrieben. Beachten Sie, dass die Synchronisierung nicht stattgefunden hat, bis Sie sehen

„OK“ und „Fertig“ erscheinen auf dem Bildschirm.

umount(u) umount(u) kann verwendet werden, um Dateisysteme als ordnungsgemäß ausgehängt zu markieren. Von dem Aus Sicht des laufenden Systems werden sie schreibgeschützt neu gemountet. Der Wiederaufstieg ist erst abgeschlossen, wenn die Meldungen „OK“ und „Fertig“ auf dem Bildschirm erscheinen.
Loglevel 0-9 * Die Loglevel 0-9 sind nützlich, wenn Ihre Konsole mit überschwemmt wird Kernel-Meldungen, die Sie nicht sehen möchten.
  • Die Auswahl von „0“ verhindert alle außer die dringendsten Kernel-Meldungen Ihre Konsole erreichen.
    • Sie werden trotzdem protokolliert, wenn syslogd/klogd aktiv sind
term(e) und kill(i) term(e) und kill(i) sind nützlich, wenn Sie eine Art außer Kontrolle geratenen Prozess haben Sie können auf keine andere Weise töten, besonders wenn es andere spawnt Prozesse.
just thaw it(j)" "just thaw it(j)" ist nützlich, wenn Ihr System aufgrund von a. nicht mehr reagiert eingefrorenes (wahrscheinlich root) Dateisystem über das FIFREEZE ioctl.

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.[8] 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.[9]
  • Es existiert kein Konsens darüber, welche Kombination zu bevorzugen ist.

Merksprüche

  • Die einzelnen Magic–SysRq–Tastenkombinationen werden oft in bestimmter Reihenfolge zusammen eingegeben, um bestimmte Aktionen auszuführen.
  • Für diese Sequenzen haben sich einige Merksprüche herausgebildet.
  • Die am häufigsten mithilfe einer solchen Sequenz bezweckte Aktion ist vermutlich ein sicherer Notfall–Neustart des Systems: {{#if:trim|S-Abf}} + {{#if:trim|R}} + {{#if:trim|E}} + {{#if:trim|I}} + {{#if:trim|S}} + {{#if:trim|U}} + {{#if:trim|B}}

Die hierzu benötigte Reihenfolge der Tasten lässt sich etwa mit dem englischen Satz „Raising Elephants Is So Utterly Boring“ merken, wobei jeweils der erste Buchstabe eines Wortes für die S–Abf–Kombination mit der entsprechenden Taste steht.

Auch „Everything is super, uncle Ben“ ist ein verbreiteter Satz für diesen Zweck.

Zugriff aus der Kommandozeile

Wenn die S-Abf Taste aus verschiedenen Gründen nicht betätigt werden kann, eine Vorlage:W jedoch zur Verfügung steht, können die "magischen" Kommandos auch mithilfe dieser Kommandozeile ausgeführt werden. Um ein Magic Command auszuführen, wird mithilfe der Vorlage:W der Code der gewünschte Taste in den SysRq-Trigger im Vorlage:W geschrieben. Für diese Befehle sind aus Sicherheitsgründen root-Rechte nötig. Als Beispiel:

echo b > /proc/sysrq-trigger

Dieser Befehl ist äquivalent zur Kombination {{#if:trim|Alt}} + {{#if:trim|Druck}} + {{#if:trim|B}}, welche den Computer (ohne Rücksicht auf Datenverluste) neu startet.

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.

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

Magic SysRQ testen

  • Wer die SysRQ-Funktionen gezielt testen möchte, kann eine Forkbomb auf dem eigenen Rechner starten, um diesen bewusst zu überlasten.

Auszug eines Systemprotokolls

Es ist zu erkennen, 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

Problembehebung

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.

  • 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.

Keine Reaktion auf SysRq

  • Es gibt einige Tastaturen, die einen anderen Tastencode für SysRq erzeugen als die vordefinierter Wert von 99 (siehe ``KEY_SYSRQ`` in ``include/uapi/linux/input-event-codes.h``), oder die überhaupt keinen SysRq-Schlüssel haben.
  • Führen Sie in diesen Fällen ``showkey -s`` aus, um zu finden eine geeignete Scancode-Sequenz und
  • verwenden Sie ``setkeycodes <sequence> 99`` zum Zuordnen diese Sequenz zum üblichen SysRq-Code (zB ``setkeycodes e05b 99``).
  • Es ist wahrscheinlich am besten, diesen Befehl in ein Boot-Skript zu packen.
Hinweis
showkey wird beendet, indem Sie zehn Sekunden lang nichts eingeben wird

Nach SysRq erscheint nur die Kopfzeile auf der Konsole

  • Die Sysrq-Ausgabe unterliegt der gleichen Konsolen-Loglevel-Steuerung wie all andere Konsolenausgabe.
  • Das heißt, wenn der Kernel 'leise' gebootet wurde Wie es bei Distributionskernen üblich ist, erscheint die Ausgabe möglicherweise nicht auf dem tatsächlichen Konsole, obwohl es im dmesg-Puffer erscheint und zugänglich ist

über den dmesg-Befehl und an die Verbraucher von ``/proc/kmsg``.

  • Als spezifisch Ausnahme: Die Kopfzeile des sysrq-Befehls wird an alle Konsolen übergeben Verbraucher, als ob der aktuelle Loglevel maximal wäre.
  • Wenn nur der Header ausgegeben wird, ist es ziemlich sicher, dass der Kernel-Loglevel zu niedrig ist.
  • Sollten Sie die Ausgabe auf dem Konsolenkanal benötigen, benötigen Sie um den Loglevel der Konsole mit :kbd:`alt-sysrq-8` oder:
   echo 8 > /proc/sysrq-trigger

Denken Sie daran, den Loglevel nach dem Auslösen von sysrq wieder auf normal zurückzusetzen Befehl, an dem Sie interessiert sind.

SysRq scheint „hängen“ zu bleiben

  • Versuchen Sie auf beiden Seiten der Shift-, Alt- und Control-Taste zu tippen Tastatur und erneutes Drücken einer ungültigen sysrq-Sequenz
 alt-sysrq-z
  • Wechseln zu einer anderen virtuellen Konsole (ALT+Fn) und dann wieder zurück soll auch helfen.

Weitere Fragen

Linux-Kernel-Mailingliste: linux-kernel@vger.kernel.org

Dokumentation

Man-Page

Info-Pages

Projekt

Links

Intern

Weblinks

  1. c’t kompakt Linux. Heise, Hannover 2009.
  2. 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.
  3. Readme-Datei von kexec
  4. Vorlage:Webarchiv oder mjmwired.net, SysRq Dokumentation
  5. „Ubuntu 9.04“ im Ubuntuusers-Wiki oder Releasenotes zu Ubuntu 9.04 (englisch)
  6. Readme Datei von kexec
  7. http://www.mjmwired.net/kernel/Documentation/sysrq.txt
  8. Ubuntuforums.org, Guide zum Magic SysrRq Key (englisch)
  9. Linuxhowtos.org(englisch) oder pro-linux.de, Aussage zu: "unmount enthält sync"