Klávesa Sys Rq

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

Kombinace kláves se skládá zAlt+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ístoO. Navíc některé klávesy nemusí obsahovat samostatnou klávesuSysRq. V takovém případě by měla být přítomna samostatná klávesaPrtScr.

Na některých zařízeních, zejména noteboocích, musí být stisknuta i klávesaFn.

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).

Příkaz
QWERTYDvorakAZERTYColemak
Nastaví úroveň zaznamenávání zpráv konzole, které určuje druh zpráv kernelu které jdou na výstup konzole090909

(bez⇧ Shift)

09
Okamžitě restartuje systém, bez odpojení souborového systému nebo jeho synchronizacebxbb
Vyvolá selhání systému. Pokud je to nastaveno bude zachycen crashdump.cjcc
Zobrazí všechny zamčené Locks (je požadováno nastavení kernelu CONFIG_LOCKDEP)deds
Odešle signál SIGTERM všem procesorům kromě init (PID 1)e.ef
Zavolá oom_kill, což ukončí precesi pro omezení stavu OOM
fuft
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.gigd
Vyvolá stránku nápovědy do konzole.

Každá klávesa která nemá přiřazený žádný příkaz také vyvolá tuto funkci.

hdhh
Vyšle signál SIGKILL všem procesům kromě initiciu
Násilně „Prostě rozmraz“ – souborový systém který zamrzl působením FIFREEZE ioctl.jhjn
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

ktke
Zobrazí stack backtrace pro všechny aktivní procesory.lnli
Vypíše aktuální informace o paměti do konzolemm,m
Restartuje úroveň nice všech úkolů s vysokou prioritou a real-time úkoly
nbnk
Vypne systém
oroy
Výstup aktuálních registrů a příznaků do konzolyplp;
Zobrazit všechny aktivní časovače s vysokým rozlišením a zdroje času.q'aq
Přepne klávesnici z režimu raw, používaného v programech jako X11 a svgalib, do režimu XLATE.
rprp
Synchronizuje všechny připojené souborové systémy.
sosr
Vypíše seznam současných úkolů a informací o nich do konzole.tytg
Připojí všechny připojené souborové systémy v režimu read-only.ugul
Nuceně obnoví konzoly framebuffer, kromě procesorů ARM, kde tato klávesa způsobuje výpis vyrovnávací paměti ETM.vkvv
Zobrazit seznam blokovaných úkolů (stav D).w,zw
Používáno rozhraním xmon na platformách PPC/PowerPC.xqxx
Zobrazí globální registry CPU (specifické pro SPARC-64)yfyj
Vypustí vyrovnávací paměť ftracez;wz
Vytiskne souhrn dostupných kláves SysRqmezeramezeramezeramezera

Použití

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ávesSysRq 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ávesCtrl+Alt+F1 být někdy schopna donutit vrátit se do textové konzole. (PoužitímF1,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

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

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 sekvenceCtrl+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

Reference

V tomto článku byl použit překlad textu z článku Magic SysRq key na anglické Wikipedii.

  1. Linux Magic System Request Key Hacks [online]. kernel.org, 2013-08-12 [cit. 2017-05-21]. Dostupné online. (anglicky) 
  2. 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. (anglicky) .
  3. Dostupné online. 
  4. Dostupné online. 
  5. Dostupné online. 
  6. Dostupné online. 
  7. Dostupné online. 
  8. Dostupné online. 
  9. Archivovaná kopie [online]. [cit. 2017-08-31]. Dostupné v archivu pořízeném dne 2017-08-31. 
  10. Dostupné online. 
  11. Enterprise Linux 5 Virtualization Guide. [s.l.]: RedHat Dostupné online. Kapitola 27. The xm command quick reference. (anglicky) 
  12. Dostupné online. 
  13. Dostupné online. 

Externí odkazy

Média použitá na této stránce

KeyboardWithPrintScreenRinged.svg
Autor: User:Stannered, Licence: CC BY-SA 3.0
Standard 104-key computer keyboard with the Print screen key marked in red.