Co je nástroj SysRq
V případě, že vaše jádro zamrzne nebo se zasekne, můžete použít nástroj „magic“ SysRq. „Magic“ klíč SysRq umožňuje okamžitý přístup k několika základním příkazům jádra, včetně Sync, Unmount, kill procesů, showMem, showPc a reBoot. Podle dokumentace linuxového jádra:
Je to ‚magická‘ kombinace kláves, na kterou můžete stisknout a na kterou bude jádro reagovat bez ohledu na to, co dělá, i když konzole nereaguje.Jak povolit SysRq
Klávesu SysRq lze aktivovat nastavením „Magic SysRq“. Musíte se ujistit, že kernel.sysrq v sysctl.conf je nastaven správně:
kernel.sysrq = 1 (SysRq turned ON) kernel.sysrq = 0 (SysRq turned OFF)Poznámka :Na CentOS/RHEL 7 byste měli provést změny v „/usr/lib/sysctl.d/50-default.conf“
Výše uvedená nastavení zajišťují, že SysRq je ve výchozím nastavení povoleno po spuštění systému (ve výchozím nastavení je v CentOS/RHEL zakázáno). Chcete-li jej povolit, spusťte jej ihned v aktuální relaci pomocí níže uvedeného příkazu:
# echo 1 > /proc/sys/kernel/sysrq
A znovu jej zakázat:
# echo 0 > /proc/sys/kernel/sysrqPOZNÁMKA :Vzhledem k tomu, že povolení SysRq poskytuje uživateli s fyzickým přístupem ke konzoli další schopnosti, doporučuje se jej zakázat, když neřešíte problém, nebo zajistit, aby byl přístup k fyzické konzoli řádně zabezpečen.
Jak spustit událost SysRq
Existuje několik způsobů, jak spustit událost SysRq. Na většině architektur lze události SysRq spouštět z konzoly pomocí následující kombinace kláves:
Alt+PrintScreen+[CommandKey]
PrintScreen je klíč používaný jako klíč SysRq ve většině systémů Linux.
Chcete-li získat přístup k nereagujícímu systému, stiskněte Alt+SysRq a H pro zobrazení seznamu možností. Různé verze jádra mohou mít různé možnosti. Chcete-li získat podporované možnosti pro vaše aktuální jádro, můžete spustit níže uvedený příkaz jako root:
# echo h > /proc/sysrq-trigger
a zkontrolujte výstup dmesg. Níže je uveden příklad systému RHEL 7:
# dmesg [ 4338.124035] SysRq : HELP : loglevel(0-9) reboot(b) crash(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)
Typy událostí SysRq
Existuje několik událostí SysRq, které lze spustit, jakmile je povoleno zařízení SysRq. Ty se mezi verzemi jádra poněkud liší, ale existuje několik běžně používaných:
Klíč | Funkce |
---|---|
m | vypsat informace o přidělení paměti |
t | vypsat informace o stavu vlákna |
p | vypíše aktuální registry a příznaky CPU |
c | úmyslně zhroucení systému (panika jádra). Užitečné pro zachycení vmcore pomocí kdump. |
s | okamžitě synchronizujte všechny připojené souborové systémy |
u | okamžitě znovu připojte všechny souborové systémy pouze pro čtení |
b | okamžitě restartujte počítač |
o | okamžitě vypněte počítač (pokud je nakonfigurován a podporován) |
f | spusťte program Out Of Memory Killer (OOM) |
w | vypíše úlohy, které jsou v nepřerušitelném (blokovaném) stavu |
Jak spustit událost SysRq z kořenového shellu
Pokud máte na počítači root shell (a systém na to dostatečně reaguje), můžete také napsat znak příkazové klávesy do /proc/sysrq-trigger soubor. To je užitečné pro spouštění těchto informací, když nejste na systémové konzoli, nebo pro jejich spouštění ze skriptů.
# echo 'm' > /proc/sysrq-trigger
Tato metoda má další výhodu v tom, že funguje, i když je kernel.sysrq je nastaveno na 0.
CentOS / RHEL 6 :Jak nakonfigurovat kdumpCentOS / RHEL 7 :Jak nakonfigurovat kdump