9.7 Linux' SysRq
Vielleicht hat sich Linux bei Ihnen schon einmal aufgehängt, ließ sich nicht mehr ansprechen oder wenigstens herunterfahren. Für diesen Fall haben wir eine sehr gute Nachricht: Dass sich Linux wirklich überhaupt nicht mehr steuern lässt, das ist ein äußerst seltener Ausnahmefall, da fast immer ein (relativ unbekanntes) Rettungsmanöver funktioniert.
Es funktioniert folgendermaßen: Die SysRq-Taste wird in Kombination mit einer weiteren Taste gedrückt, um dem Kernel eine Direktanweisung zu geben. <Die Kernel-Dokumentation bezeichnet dies als »magische Tastenkombination«.>
Wenn Sie an einem üblichen x86/x64-Rechner oder an einem Rechner mit PPC-Prozessor arbeiten, dann werden Sie sich sicherlich fragen, wo denn dort eine solche Taste sei? Diese Taste gibt es auf solchen Systemen nicht, und man verwendet stattdessen die Tastenkombination Alt + Druck.
Alternativ (und das funktioniert immer, solange man noch Befehle in der Konsole eingeben kann) kann man den jeweiligen Buchstaben der Tastenkombination auch in die Datei /proc/sysrq-trigger schreiben:
# echo h > /proc/sysrq-trigger
Listing 9.100 SysRq via /proc/sysrq-trigger
9.7.1 Aktivierung von SysRq
Bevor wir die eigentlichen Tastenkombinationen vorstellen, soll noch gezeigt werden, wie man herausfindet, ob SysRq aktiviert ist, und wie man es im Kernel aktivieren kann.
Kernel- Konfiguration
Eine Untersuchung der Kernelkonfiguration auf die Variable CONFIG_MAGIC_SYSRQ hin (etwa mit grep CONFIG_MAGIC_SYSRQ .config) zeigt, ob die Unterstützung für SysRq einkompiliert wurde. Falls dem nicht so ist, kann man das durch Hinzufügen dieser Option natürlich ändern.
Ist SysRq aktiviert?
Über die Datei /proc/sys/kernel/sysrq lässt sich steuern, ob (und wenn ja, wie), SysRq-Support aktiviert werden soll. Trägt man eine 0 in diese Datei ein, wird SysRq deaktiviert. Eine 1 bewirkt die Aktivierung sämtlicher SysRq-Funktionalitäten. Ein Wert über 1 wird als Bitmaske gewertet, um so nur bestimmte Funktionen zu aktivieren. Sie finden die entsprechenden Werte in der Datei Documentation/sysrq.txt Ihrer Kernelversion.
# echo 1 >/proc/sys/kernel/sysrq
Listing 9.101 SysRq vollständig aktivieren
9.7.2 Tastenkombinationen
Im Folgenden sind die wichtigsten SysRq-Tastenkombinationen für die zum Zeitpunkt des Schreibens aktuelle Kernel-Version 2.6.21.1 aufgelistet.
Sie finden die zu Ihrer Kernel-Version passenden Tastenkombinationen in der Datei Documentation/sysrq.txt des Kernel-Quellcodes.
- SysRq+b: Sofortiger Neustart des Systems (ohne Syncronisation der Speichermedien!)
- SysRq+e: Sendet SIGTERM an alle Prozesse außer init.
- SysRq+h: Ausgabe einer Hilfe-Information auf der Konsole. <Der Dokumentation ist zu entnehmen, dass jeder nicht weiter festgelegte Buchstabe ebenfalls zur Ausgabe der Hilfe-Informationen führt. Allerdings sei der Buchstabe »h« leichter zu merken.>
- SysRq+i: Sendet SIGKILL an alle Prozesse außer init.
- SysRq+k: Killt alle Prozesse der aktuellen Konsole.
- SysRq+m: Führt einen Memory-Dump auf der Konsole aus.
- SysRq+o: Fährt das System herunter und schaltet es (falls möglich) aus.
- SysRq+p: Führt einen Dump der aktuellen Registerinhalte und Flags auf der Konsole aus.
- SysRq+r: Abschalten des Keyboard-RAW-Modes und Wechsel in den XLATE-Modus. <X11 und auch svgalib-Programme ändern den Keyboard-Modus. Stürzen diese ab, so bleibt die Tastaur unter Umständen im RAW-Modus, was sich mit SysRq+r lösen lässt.>
- SysRq+s: Synchronisiert alle gemounteten Dateisysteme.
- SysRq+t: Führt einen Dump der Tasks auf der Konsole aus.
- SysRq+u: Erneutes Mounten aller Dateisysteme im Nur-Lesen-Modus.