Klávesa Sys Rq
Klávesa Sys Rq umožňuje stisknutím kombinace kláves poslat signál srozumitelný pro Linuxové jádro, který umožňuje uživateli vykonávat různé nízkoúrovňové příkazy bez ohledu na stav systému. Toho je často používáno k obnovení po zamrznutí systému nebo k restartu počítače bez poškození souborového systému.[1] Jeho účinek je podobný jako hardwarové resetovací tlačítko (nebo vypínač), ale s mnohem více možnostmi a mnohem větší kontrolu.
Tato kombinace poskytuje přístup k výkonné funkci pro vývoj softwaru a obnově při selhání. V tomto smyslu může být užití považováno za formu escape sekvence. Mezi hlavní nabízené příkazy jsou prostředky k násilnému odpojení souborového systému, ukončení procesů, obnova stavu klávesnice, a psát nezapsaná data na disk. S ohledem na tyto úkoly tato funkce slouží jako nástroj poslední instance.
Kombinace s klávesou SysRq nemůže za určitých podmínek fungovat, například při kernel panic[2] nebo selhání hardwaru bránící jádru pracovat správně.
Příkazy
[editovat | editovat zdroj]Kombinace kláves se skládá z Alt+SysRq a další klávesy, která určuje vyslaný příkaz. V Ubuntu kombinace Alt+SysRequest působí jako příkaz „print screen“.
Kombinace vždy předpokládá rozložení klávesnice QWERTY, například na Dvorak Simplified Keyboard, kombinace pro vypnutí systému využívá klávesu R místo O. Navíc některé klávesy nemusí obsahovat samostatnou klávesu SysRq. V takovém případě by měla být přítomna samostatná klávesa PrtScr.
Na některých zařízeních, zejména noteboocích, musí být stisknuta i klávesa Fn.
Kombinace kláves SysRq může také být přístupná ze sériové konzole (zasláním RS-232 signál break), pokud je povolena možnost sysctl.[3]
Po přihlášení pomocí SSH může být SysRq přístupné pomocí zápisu do /proc/sysrq-trigger (například echo s > /proc/sysrq-trigger
). Standardně se vykoná jen první ze zapsaných znaků. Pokud je ale prvním znakem podtržítko, vykonají se všechny zapsané znaky na jádrech 6.8 a vyšších. (například echo _reisub > /proc/sysrq-trigger
)
Příkaz |
QWERTY | Dvorak | AZERTY | Colemak |
---|---|---|---|---|
Nastaví úroveň zaznamenávání zpráv konzole, které určuje druh zpráv kernelu které jdou na výstup konzole | 0 až 9 | 0 až 9 | 0 až 9 (bez ⇧ Shift) |
0 až 9 |
Okamžitě restartuje systém, bez odpojení souborového systému nebo jeho synchronizace | b | x | b | b |
Vyvolá selhání systému. Pokud je to nastaveno bude zachycen crashdump. | c | j | c | c |
Zobrazí všechny zamčené Locks (je požadováno nastavení kernelu CONFIG_LOCKDEP) | d | e | d | s |
Odešle signál SIGTERM všem procesorům kromě init (PID 1) | e | . | e | f |
Zavolá oom_kill, což ukončí precesi pro omezení stavu OOM |
f | u | f | t |
Při použití Kernel Mode Setting, nabízí podporu nouzového přepnutí zpět do framebuffer konzole kernelu[4] Pokud je přítomen 'kdb' pro ladění kernelu, je spuštěn. | g | i | g | d |
Vyvolá stránku nápovědy do konzole. Každá klávesa která nemá přiřazený žádný příkaz také vyvolá tuto funkci. |
h | d | h | h |
Vyšle signál SIGKILL všem procesům kromě init | i | c | i | u |
Násilně „Prostě rozmraz“ – souborový systém který zamrzl působením FIFREEZE ioctl. | j | h | j | n |
Ukončí všechny procesy v současné virtuální konzoly (může ukončitl X a programy svgalib, viz níž) Původně bylo určeno jako imitace secure attention key |
k | t | k | e |
Zobrazí stack backtrace pro všechny aktivní procesory. | l | n | l | i |
Vypíše aktuální informace o paměti do konzole | m | m | , | m |
Restartuje úroveň nice všech úkolů s vysokou prioritou a real-time úkoly |
n | b | n | k |
Vypne systém |
o | r | o | y |
Výstup aktuálních registrů a příznaků do konzoly | p | l | p | ; |
Zobrazit všechny aktivní časovače s vysokým rozlišením a zdroje času. | q | ' | a | q |
Přepne klávesnici z režimu raw, používaného v programech jako X11 a svgalib, do režimu XLATE. |
r | p | r | p |
Synchronizuje všechny připojené souborové systémy. |
s | o | s | r |
Vypíše seznam současných úkolů a informací o nich do konzole. | t | y | t | g |
Připojí všechny připojené souborové systémy v režimu read-only. | u | g | u | l |
Nuceně obnoví konzoly framebuffer, kromě procesorů ARM, kde tato klávesa způsobuje výpis vyrovnávací paměti ETM. | v | k | v | v |
Zobrazit seznam blokovaných úkolů (stav D). | w | , | z | w |
Používáno rozhraním xmon na platformách PPC/PowerPC. | x | q | x | x |
Zobrazí globální registry CPU (specifické pro SPARC-64) | y | f | y | j |
Vypustí vyrovnávací paměť ftrace | z | ; | w | z |
Vytiskne souhrn dostupných kláves SysRq | mezera | mezera | mezera | mezera |
Použití
[editovat | editovat zdroj]Běžné použití kombinací kláves SysRq slouží k bezpečnému restartu počítače se systémem Linux, který je jinak zaseklý (zkr. REISUB). To může zabránit nutnosti fsck při restartu a dává některým programům možnost uložit nouzové zálohy neuložené práce.[5] QWERTY (nebo AZERTY) mnemotechnické pomůcky: "Raising Elephants Is So Utterly Boring", "Reboot Even If System Utterly Broken" nebo prostě slovo "BUSIER" čtené pozpátku, je často používáno pro zapamatování následující sekvence kombinací kláves SysRq:
unRaw (převzít kontrolu nad klávesnicí zpět z X), tErminate (poslat SIGTERM všem procesům, které jim umožní ukončit elegantně), kIll (poslat SIGKILL, všem procesům, donutit je, okamžitě ukončit), Sync (vyprázdní data na disk), Unmount (znovu připojí všechny souborové systémy pouze pro čtení), reBoot.
Když je kombinace kláves SysRq použita k ukončení zmrazeného grafického programu, program nemá šanci na obnovení v textovém režimu. To může dělat vše, nečitelným. Příkazy textmode (část SVGAlib) a reset mohou obnovit textový režim a konzole opět čitelnou.
V distribucích, které nezahrnují spustitelný textmode, může kombinace kláves Ctrl+Alt+F1 být někdy schopna donutit vrátit se do textové konzole. (Použitím F1, F2, F3,..., F(n), kde n je nejvyšší počet textových konzolí nastavený v distribuci. Ctrl+Alt+F(n+1) by normálně mělo být použity, pro návrat do režimu grafického uživatelského rozhraní v systému, na němž X nehavaroval.)
Konfigurace
[editovat | editovat zdroj]Funkce je ovládána volbou kompilace-času v konfiguraci jádra, CONFIG_MAGIC_SYSRQ, a sysctl parametru jádra, kernel.sysrq.
Na novějších jader (od 2.6.12[6]), je možné mít jemnější kontrolu nad tím, jak může být kombinace kláves SysRq použita.[7] Na těchto strojích, číslo napsané na /proc/sys/kernel/sysrq může být nula, jedna nebo číslo větší než jedna, což je bitová maska, která označuje, které funkce chcete povolit.
Alternativní způsoby, jak vyvolat SysRq
[editovat | editovat zdroj]Zatímco kombinace kláves SysRq byla původně implementován jako část klávesnice jádra pro ladění, funkce byly vystaveny také prostřednictvím proc souborového systému a je běžně používán k poskytování rozšířené možnosti správy do bezhlavého a vzdálených systémů.
Linuxové démony sysrqd[8] a tcpconsole[9] poskytují způsob přístupu k funkci SysRq přes TCP spojení po ověření s plain-text heslem. Démon hangwatch[10] vyvolá před-konfigurované sysrq, když průměrné zatížení systému překročí určitý práh.
Xen hypervisor má funkci pro odeslání příkazu SysRq na hostované domény přes jeho příkaz "xm sysrq".[11] Navíc, sysrq příkaz lze vyvolat z Xen paravirtual console odesláním break sekvence Ctrl+O následovanou požadovanou klávesou.
Mnoho embedded systémů nemá klávesnici, ale místo toho používá sériové konzoly pro textový vstup/výstup pro chod systému. Je možné vyvolat funkce SysRq přes sériovou konzoli, zasláním sériového příkazu "Break", následovaný požadovanou klávesou. Způsob odeslání break je závislá na terminálovém programu nebo hardwaru používaném k připojení sériové konzole.
Chromebooky mají klávesnice, ale nemají klávesu pro SysRq. Používají Alt + VolumeUp (F10).[12][13]
IBM Power servery mohou vyvolat funkce SysRq pomocí Ctrl+O následované požadovanou klávesou od HMC konzole.
IBM mainframe oddíly mohou vyvolat funkce SysRq pomocí ^+- následované požadovanou klávesou na 3270 nebo HMC konzoly.
Související články
[editovat | editovat zdroj]- Stop-A, posloupnost kláves používané pro přístup k Sun Microsystems's Open Firmware (OpenBoot)
- KVM přepínač
- Systémová konzole
Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Magic SysRq key na anglické Wikipedii.
- ↑ Linux Magic System Request Key Hacks [online]. kernel.org, 2013-08-12 [cit. 2017-05-21]. Dostupné online.
- ↑ KHAMLICHI, Mel. Use Magic SysRq Combination Key to Recover from a Frozen System in Linux. [s.l.]: Unixmen, 18 Oct 2010. Dostupné v archivu pořízeném dne 2014-08-20. .
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Dostupné online.
- ↑ Archivovaná kopie [online]. [cit. 2017-08-31]. Dostupné v archivu pořízeném dne 2017-08-31.
- ↑ Dostupné online.
- ↑ Enterprise Linux 5 Virtualization Guide. [s.l.]: RedHat Dostupné online. Kapitola 27. The xm command quick reference.
- ↑ Dostupné online.
- ↑ Dostupné online.
Externí odkazy
[editovat | editovat zdroj]- Obrázky, zvuky či videa k tématu Klávesa Sys Rq na Wikimedia Commons
- Dostupné online.
- Dostupné online.
- Dostupné online.
- Dostupné online.