Magic SysRequest key

Aus Foxwiki

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.

Syntax

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-Pages

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"