Magic SysRequest key: Unterschied zwischen den Versionen
Zeile 431: | Zeile 431: | ||
* Es existiert kein Konsens darüber, welche Kombination zu bevorzugen ist. | * Es existiert kein Konsens darüber, welche Kombination zu bevorzugen ist. | ||
== Kommandozeile == | == 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: | |||
echo b > /proc/sysrq-trigger | |||
Dieser Befehl ist äquivalent zur Kombination {{Taste|Alt}} + {{Taste|Druck}} + {{Taste|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. | 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. | * Mit Hilfe der Standard-Datenströme wird der Code der gewünschten Taste in den SysRQ-Trigger des procfs geschrieben. |
Version vom 4. April 2022, 12:09 Uhr
Magic SysRequest key (Magische S-Abf-Taste) ist eine Funktion des Linux Kernels in Fehlersituationen Befehle per Tastenkombinationen entgegennehmen zu können.
Beschreibung
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.
Das funktioniert auch noch, wenn der Computer auf andere Eingaben nicht mehr reagiert, sofern der Kernel noch nicht abgestürzt ist.
- Damit lassen sich verschiedene Funktionen ausführen (etwa ein 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
- 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.
Syntax
Was sind die "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.
!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.
|
|
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.
|
|
L | Kill including init | Sende SIGKILL an alle Prozesse, auch an Init.
|
|
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. |
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. Hier ist die Liste der möglichen Werte in /proc/sys/kernel/sysrq:
- 0 - sysrq vollständig deaktivieren - 1 - aktiviert alle Funktionen von sysrq - >1 - Bitmaske der erlaubten sysrq-Funktionen (siehe unten für detaillierte Funktionen Bezeichnung)::
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
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.
Beachten Sie, dass 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).
Dateien
Permanentes Aktivieren und Deaktivieren
/etc/sysctl.d/10-magic-sysrq.conf
# Werte fuer X sind der Dokumentation zu entnehmen: http://www.mjmwired.net/kernel/Documentation/sysrq.txt #kernel.sysrq = X # # Deaktivierung kernel.sysrq = 0
Anwendungen
Anwendung des magischen SysRq-Schlüssels
Sie drücken die Tastenkombination ALT-SysRq-<Befehlstaste>
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
Bei `<Befehlstaste>` wird zwischen Groß- und Kleinschreibung unterschieden.
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.)
``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.
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.[6] 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.[7]
- Es existiert kein Konsens darüber, welche Kombination zu bevorzugen ist.
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.
SysRq scheint keine Funktion zu haben
- 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-Homepage
Links
Intern
Weblinks
- Problembehandlung beim Neustart im Linux-Kompendium
- Notfall Übersichtsartikel
- Magische_S-Abf-Taste
- Magic_SysRq_key
- 4408/what-should-i-do-when-ubuntu-freezes
- Documentation/admin-guide/sysrq.rst auf kernel.org (Linux Kernel Archives) (englisch)
- Der Patch des Linux-Kernels, der das /proc/sysrq-trigger-Feature einbaute
- Magic SysRequest im Wiki von Ubuntuusers.de
Einzelnachweise
- ↑ c’t kompakt Linux. Heise, Hannover 2009.
- ↑ 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.
- ↑ Readme-Datei von kexec
- ↑ Vorlage:Webarchiv oder mjmwired.net, SysRq Dokumentation
- ↑ „Ubuntu 9.04“ im Ubuntuusers-Wiki oder Releasenotes zu Ubuntu 9.04 (englisch)
- ↑ Ubuntuforums.org, Guide zum Magic SysrRq Key (englisch)
- ↑ Linuxhowtos.org(englisch) oder pro-linux.de, Aussage zu: "unmount enthält sync"
Testfragen
Testfrage 1
Testfrage 2
Testfrage 3
Testfrage 4
Testfrage 5
TMP
Vorlage:Wikipedia 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.
![](https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/KeyboardWithPrintScreenRinged.svg/langde-300px-KeyboardWithPrintScreenRinged.svg.png)
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.
Kombinationen und ihre 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.
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:W–Vorlage: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[1] neu (sofern vorhanden) und gib einen Crashdump auf dem Bildschirm aus. Ansonsten provoziere einen Absturz durch eine Null-Pointer-Dereferenzierung.[2] |
{{#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. |
Aktivieren und Deaktivieren des Magic SysRq Key
Um SysRq–Aufrufe generell zu deaktivieren, kann man folgendes Vorlage:W-Kommando verwenden:
echo 0 > /proc/sys/kernel/sysrq
Und um sie wieder zu aktivieren:
echo 1 > /proc/sys/kernel/sysrq
Dafür sind root-Rechte nötig.