# Magische S-Abf-Taste

Die „Magische S-Abf-Taste“, wobei „S-Abf“ für Systemabfrage steht – im Englischen Magic SysRq Key, kurz für Magic SysRequest key – bezeichnet eine Reihe von Tastenkombinationen mit der S-Abf-Taste bzw. SysRq-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 Alt + S-Abf gedrückt zu halten und dabei nacheinander die Tasten R, E, I, S, U und 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. 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. 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 S-Abf + Alt drückt. S-Abf/SysRq ist auf IBM-AT-kompatiblen Tastaturen eine Alternativbelegung der Taste Druck/Print Screen.
Auf Tastaturen für Deutschland drückt man gleichzeitig die Tasten Alt + Druck + Taste aus Tabelle unten.
Auf Tastaturen für die Schweiz und englischsprachige Länder entspricht die Taste SysRq dem deutschen Pendant S-Abf. Die Beschriftung ist zum Beispiel in der Schweiz PrtScr SysRq. Die Kombination auf schweizerischer Tastatur ist: Alt Gr + PrtScr SysRq.
Besonders auf Laptops müssen wegen herstellerspezifischen Tastaturlayouts ggf. noch Zusatztasten gedrückt werden, so etwa auf Dell-Laptops zunächst Num, anschließend Fn + Alt + Druck + entsprechender Buchstabe; auf z. B. ThinkPads kann folgende Abfolge verwendet werden: Alt drücken und halten, Fn + Druck drücken und wieder loslassen, 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 QWERTZ-Tastatur.
Alphanumerische Tasten und ihre Funktion :
| Taste | Funktion (englisch) | Bedeutung |
| 0…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 0 werden nur noch kritische Meldungen wie etwa Kernel panic angezeigt. |
| 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. |
| C | crashdump | Starte mit Hilfe von kexec neu (sofern vorhanden) und gib einen Crashdump auf dem Bildschirm aus. Ansonsten provoziere einen Absturz durch eine Null-Pointer-Dereferenzierung. |
| D | | Zeige (im Textmodus) alle derzeitigen Locks an. |
| E | term | Sende SIGTERM an alle Prozesse außer Init |
| 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. |
| G | kGDB | Schaltet bei neueren Kernelversionen auf die Framebuffer-Textkonsole um und startet den Kernel-Debugger kgdb, falls vorhanden. |
| H | help | Gib einen Hilfetext für die Benutzung des Magic-SysRq-Key aus. Auch jede andere nicht belegte Taste gibt diesen Text aus. |
| I | kill | Sende SIGKILL an alle Prozesse außer Init |
| J | „Just thaw it“ | Beendet bei neueren Kernelversionen das „Einfrieren“ eines Dateisystems durch die IOCTL-Funktion FIFREEZE. |
| 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 Strg + Alt + Backspace empfohlen. |
| L | kill including init | Sende SIGKILL an alle Prozesse, auch an Init. Das kommt einem Ausschalten gleich. Neuere Kernelversionen zeigen einen Backtrace an. |
| M | memory | Gib die Hauptspeicherbelegung in der Konsole aus. |
| N | | Hiermit lässt sich die Priorität von Echtzeit-Prozessen herabsetzen. |
| O | poweroff | Schaltet den Rechner mit sofortiger Wirkung über ACPI/APM – wenn unterstützt – aus. Wie bei B wird mit O alleine nichts gespeichert. |
| P | show registers | Zeige den Inhalt der CPU-Register inklusive der Flags an. |
| Q | | Zeige alle derzeitig laufenden Timer an. |
| 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. |
| S | sync | Schreibe alle noch nicht auf die Festplatte geschriebenen Daten aus dem Kernel-Festplatten-Cache auf die Festplatten |
| T | show tasks | Zeige eine Liste aktuell laufender Prozesse an. |
| U | umount | Alle schreibbar eingebundenen Partitionen werden ausgehängt und anschließend nur-lesend wieder eingehängt. |
| V | framebuffer, ETM dump | Schaltet bei neueren Kernelversionen auf die Framebuffer-Textkonsole um. Auf der ARM-Architektur wird der ETM-Puffer angezeigt. |
| W | | Zeige blockierte Prozesse an, die sich, beispielsweise während Festplattenzugriffen, im „ununterbrechbaren Schlaf“ befinden. |
| X | XMON | Bei neueren Kernelversionen für die XMON-Schnittstelle der Power/PowerPC-Architektur verwendet. |
| Y | FTRACE dump | Bei neueren Kernelversionen wird der FTRACE-Puffer angezeigt. |
| 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.