Magic SysRq-nyckel
Den magiska SysRq-nyckeln är en tangentkombination som förstås av Linux-kärnan , som låter användaren utföra olika lågnivåkommandon oavsett systemets tillstånd. Det används ofta för att återställa från frysningar eller för att starta om en dator utan att förstöra filsystemet . Dess effekt liknar datorns hårdvaruåterställningsknapp ( eller strömbrytare) men med många fler alternativ och mycket mer kontroll.
Denna tangentkombination ger tillgång till kraftfulla funktioner för programvaruutveckling och katastrofåterställning. I denna mening kan det betraktas som en form av flyktsekvens . Huvudsakliga bland de erbjudna kommandona är sätt att tvångsavmontera filsystem, döda processer, återställa tangentbordstillstånd och skriva oskriven data till disk. När det gäller dessa uppgifter fungerar den här funktionen som ett sista utvägsverktyg.
Den magiska SysRq-nyckeln kan inte fungera under vissa förhållanden, såsom en kärnpanik eller ett hårdvarufel som hindrar kärnan från att köras korrekt.
Kommandon
Tangentkombinationen består av Alt + SysRq och en annan tangent, som styr kommandot som ges. SysRq kan släppas innan du trycker på kommandotangenten, så länge Alt hålls nedtryckt.
Kombinationerna förutsätter alltid QWERTY- tangentbordslayouten; [ citat behövs ] till exempel på Dvoraks tangentbordslayout använder kombinationen för att stänga av systemet R - tangenten istället för O . Dessutom kanske vissa tangentbord inte har en separat SysRq- nyckel. I det här fallet bör en separat PrtScn- nyckel finnas.
På vissa enheter, särskilt bärbara datorer, kan Fn -tangenten behöva tryckas in för att använda den magiska SysRq- tangenten, t.ex. på Thinkpad Carbon X1 aktiveras SysRq genom att trycka på Alt + Fn + S samtidigt och sedan släppa Fn och S medan du fortfarande håller Alt ( se här ). På en ChromeOS-enhet trycker du på Alt + Volym upp (F10) + <tangent> .
SysRq-funktioner kan också nås utan tangentbord. Se § Andra sätt att anropa Magic SysRq nedan. Observera att vissa kommandon kan inaktiveras direkt enligt vad som anges i bitmaskvärdet i /proc/sys/kernel/sysrq
.
Handling | QWERTY | Dvorak | AZERTY | Colemak |
---|---|---|---|---|
Ställ in konsolloggnivån, som styr vilka typer av kärnmeddelanden som matas ut till konsolen | 0 - 9 | 0 - 9 |
0
- 9 (utan ⇧ Shift ) |
0 - 9 |
Starta om systemet omedelbart utan att avmontera eller synkronisera filsystem | b | x | b | b |
Utför en systemkrasch. En crashdump kommer att tas om den är konfigurerad. | c | j | c | c |
lås för närvarande ( CONFIG_LOCKDEP kärnalternativ krävs) | d | e | d | s |
Skicka SIGTERM -signalen till alla processer utom init ( PID 1) | e | . | e | f |
Ring oom_kill , som dödar en process för att lindra ett OOM -tillstånd | f | u | f | t |
När du använder Kernel Mode Setting byter du till kärnans framebuffer-konsol. Om felsökaren i kärnan kdb finns, ange felsökaren. |
g | i | g | d |
Skriv ut ett kortfattat hjälpdokument till konsolen Alla tangenter som inte är bundna till ett kommando bör också utföra denna åtgärd |
h | d | h | h |
Skicka SIGKILL -signalen till alla processer utom init | i | c | i | u |
Med tvång "Bara tina upp det" – filsystem frusna av FIFREEZE ioctl. | j | h | j | n |
Döda alla processer på den aktuella virtuella konsolen (kan döda X- och SVGAlib-program, se nedan) Detta designades ursprungligen för att imitera en säker uppmärksamhetsnyckel |
k | t | k | e |
Visar en stackbacktrace för alla aktiva processorer. | l | n | l | i |
Mata ut aktuell minnesinformation till konsolen | m | m | , | m |
Återställ den fina nivån för alla högprioriterade och realtidsuppgifter | n | b | n | k |
Stäng av systemet | o | r | o | y |
Mata ut aktuella register och flaggor till konsolen | sid | l | sid | ; |
Visa alla aktiva högupplösta timers och klockkällor. | q | ' | a | q |
Växla tangentbordet från råläge, som används av program som X11 och SVGAlib , till XLATE-läge | r | sid | r | sid |
Synkronisera alla monterade filsystem | s | o | s | r |
Skriv ut en lista över aktuella uppgifter och deras information till konsolen | t | y | t | g |
Montera om alla monterade filsystem i skrivskyddat läge | u | g | u | l |
Återställer kraftfullt framebuffer-konsolen. För ARM-processorer, orsaka ETM-buffertdump istället. |
v | k | v | v |
Visa lista över blockerade (D-tillstånd) uppgifter | w | , | z | w |
Används av xmon-gränssnittet på PowerPC- plattformar. Visa globala PMU-register på sparc64 . Dumpa alla TLB- poster på MIPS . |
x | q | x | x |
Visa globala CPU-register (specifik SPARC-64) | y | f | y | j |
Dumpa ftrace-bufferten | z | ; | w | z |
Utdata från SysRq + h på en x86_64-kärna:
sysrq: HJÄLP: loglevel(0-9) omstart(b) krasch(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers( q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(v) show-blocked-tasks(w) dump-ftrace-buffer(z)
Används
Före tillkomsten av journaliserade filsystem var en vanlig användning av den magiska SysRq-nyckeln att utföra en säker omstart av en Linux-dator som annars har låst sig (förkortning REISUB ), vilket undviker risken för korruption av filsystemet. Med moderna filsystem uppmuntras inte denna praxis, och erbjuder inga fördelar jämfört med rak omstart , även om standardvärdet för kernel.sysrq i sådana distributioner som Ubuntu och Debian förblir 176 respektive 438.
En annan tidigare användning var att döda ett fruset grafiskt program, eftersom X Window System brukade ha fullständig kontroll över grafiskt läge och inmatningsenheter.
På distributioner som inte innehåller ett textmode -kommando kan tangentkommandot Ctrl + Alt + F1 ibland tvinga fram en återgång till en textkonsol. (Använd F1 , F2 , F3 , ... , F n , där n är det högsta antalet textkonsoler som ställts in av distributionen. Ctrl + Alt + F ( n +1) skulle normalt användas för att återgå till GUI-läge på en system där X-servern inte har kraschat.) Det finns även distributioner där Ctrl + Alt + ( F3 , ... , F ( n -2) ) öppnar textkonsoler, Ctrl + Alt + F1 återgår till GUI-läge, Ctrl + Alt + F2 återgå till GUI-läge på inloggningssidan för att logga in en annan användare.
Konfiguration
Funktionen styrs både av ett kompileringstidsalternativ i kärnkonfigurationen, CONFIG_MAGIC_SYSRQ , och en sysctl -kärnparameter, kernel.sysrq .
På nyare kärnor (sedan 2.6.12) är det möjligt att ha mer finkornig kontroll över hur den magiska SysRq-nyckeln kan användas. På dessa maskiner kan numret som skrivs till /proc/sys/kernel/sysrq vara 0, 1 eller ett nummer större än 1 vilket är en bitmask som indikerar vilka funktioner som ska tillåtas. På Ubuntu ställs detta vid uppstart till det värde som definieras i /etc/sysctl.d/10-magic-sysrq.conf .
Andra sätt att anropa Magic SysRq
Medan den magiska SysRq-nyckeln ursprungligen implementerades som en del av kärnans tangentbordshanterare för felsökning, har funktionaliteten också exponerats via proc- filsystemet och används vanligtvis för att tillhandahålla utökade hanteringsmöjligheter till huvudlösa och avlägsna system. Från användarrymdprogram (som ett kommandoradsskal) kan SysRq nås genom att skriva till /proc/sysrq-trigger (t.ex. echo s > /proc/sysrq-trigger )
.
Många inbyggda system har inget anslutet tangentbord, utan använder istället en seriell konsol för textinmatning/utmatning till det körande systemet. Det är möjligt att anropa en Magic SysRq-funktion över en seriell konsol genom att skicka en seriell brytsignal följt av önskad nyckel. Metoden för att skicka en paus beror på terminalprogrammet eller hårdvaran som används för att ansluta till den seriella konsolen. Ett sysctl- alternativ måste ställas in för att aktivera denna funktion.
Linux-demonerna sysrqd och tcpconsole tillhandahåller en metod för att komma åt SysRq-funktioner över en TCP-anslutning efter autentisering med ett vanlig textlösenord. Hangwatch - demonen kommer att anropa förkonfigurerade SysRq-utlösare när systembelastningsgenomsnittet överstiger en viss tröskel.
Xen - hypervisorn har funktionalitet för att skicka magiska kommandon till värddomäner via dess xm sysrq- kommando. Dessutom kan ett SysRq-kommando anropas från en Xen paravirtuell konsol genom att skicka en brytsekvens Ctrl + O följt av önskad tangent.
Chromebooks har ett tangentbord men ingen dedikerad SysRq-nyckel. De använder Alt + VolumeUp ( Alt + F10 ) istället, men vissa tangenter har en annan funktion.
IBM Power Systems servrar kan anropa Magic SysRq-funktionen med Ctrl + O följt av önskad nyckel från Hardware Management Console .
IBM stordatorpartitioner kan anropa Magic SysRq-funktionen med ^ + - följt av önskad nyckel på 3270- eller HMC-konsolen.
Se även
- Stop-A , nyckelsekvens som används för att komma åt Sun Microsystems Open Firmware (OpenBoot)
- Konsolserver
- KVM switch
- Systemkonsol
externa länkar
- "Dokumentation/sysrq.txt" . Linux (kärnan källträd). kernel.org . Hämtad 2017-01-31 .
- "Linux Magic System Request Key Hacks" . Linux (dokumentation för linux kärna). kernel.org . Hämtad 2020-06-01 .
- Morton, Andrew (2013-03-13). "Kärnpatch till -mm-trädet som lade till /proc/sysrq-trigger-funktionen: Detta gör sysrq-faciliteter tillgängliga för fjärranvändare" . Hämtad 2015-04-09 .
- Lawrence, Tony (2005-04-13). "Magic Sysrq Key på Linux" . AP Lawrence . Hämtad 2015-04-09 .
- Gall, Tom (2000-04-01). "Magic sys request" . Utvecklare jobbar . IBM . Arkiverad från originalet 2007-05-27 . Hämtad 2013-09-03 .