суббота, 5 ноября 2011 г.

openSUSE magic SysRq key


        Magic SysRq key - комбинация клавиш, которая позволяет выполнять низкоуровневые задания на уровне ядра Linux. Это набор комманд полезен, если система зависла и её надо вернуть к жизни, или просто перегрузить компьютер, предварительно корректно размонтироовав все файловые системы...
Включить эту комбинацию можно через Yast:


Нажимаем выделенный пункт, и в открывшемся окне переходим на вторую вкладку:
Ставим птичку в соответствующем месте, и жмём кнопку ОК.

Список ключей из документации ядра:


  • 'b - Will immediately reboot the system without syncing or unmounting your disks.
  • 'c' - Will perform a system crash by a NULL pointer dereference. A crashdump will be taken if configured.
  • 'd' - Shows all locks that are held.
  • 'e' - Send a SIGTERM to all processes, except for init.
  • 'f' - Will call oom_kill to kill a memory hog process.
  • 'g' - Used by kgdb on ppc and sh platforms.
  • 'h' - Will display help (actually any other key than those listed here will display help. but 'h' is easy to remember :-)
  • 'i' - Send a SIGKILL to all processes, except for init.
  • 'j' - Forcibly "Just thaw it" - filesystems frozen by the FIFREEZE ioctl.
  • 'k' - Secure Access Key (SAK) Kills all programs on the current virtual console. NOTE: See important comments below in SAK section.
  • 'l' - Shows a stack backtrace for all active CPUs.
  • 'm' - Will dump current memory info to your console.
  • 'n' - Used to make RT tasks nice-able
  • 'o' - Will shut your system off (if configured and supported).
  • 'p' - Will dump the current registers and flags to your console.
  • 'q' - Will dump per CPU lists of all armed hrtimers (but NOT regular timer_list timers) and detailed information about all clockevent devices.
  • 'r' - Turns off keyboard raw mode and sets it to XLATE.
  • 's' - Will attempt to sync all mounted filesystems.
  • 't' - Will dump a list of current tasks and their information to your console.
  • 'u' - Will attempt to remount all mounted filesystems read-only.
  • 'v' - Dumps Voyager SMP processor info to your console.
  • 'w' - Dumps tasks that are in uninterruptable (blocked) state.
  • 'x' - Used by xmon interface on ppc/powerpc platforms.
  • 'z' - Dump the ftrace buffer
  • '0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.)


Вольный перевод:


  • ‘b’ – Немедленно отправляет компьютер в перегрузку, без синхронизации и размонтирования файловых систем.
  • ‘c’ – Вызывает краш системы, путём разименовывания нулевого указателя.
  • ‘d’ – Покажет все установленные блокировки в памяти.
  • ‘e’ – Отправляет всем процессам SIGTERM, за исключением init.
  • ‘f’ – Вызывает oom_kill чтобы убить процессы, которые кушают память.
  • ‘g’ – Используется kgdb на ppc платформах.
  • ‘h’ – Показывает справку
  • ‘i’ – Посылает SIGKILL всем, кроме init.
  • ‘k’ – Secure Access Key (SAK) Убивает все программы, запущенные в текущей виртуальной консоли.
  • ‘m’ – Выведет текущую информацию о памяти в консоль.
  • ‘n’ – Используется для задач реального времени, дословно - делает их аккуратно выполняемыми...
  • ‘o’ – Выключает систему
  • ‘p’ – Выводит в консоль текущую информацию о регистрах и флагах.
  • ‘q’ – Показывает список всех запущенных таймеров.
  • ‘r’ – Переключаем клавиатуру в режим XLATE.
  • ’s’ – Попытается синхронизировать все примонтированные файловые системы.
  • ‘t’ – Выводит на колнсоль список текущих задач и информацию по ним.
  • ‘u’ – Пытается перемонтировать все примонтированные файловые системы в режим только для чтения
  • ‘v’ – Dumps Voyager SMP processor info to your console.
  • ‘w’ – Выводит список задач, которые находятся в заблокированном состоянии
  • ‘x’ – Используется xmon-интерфесом на ppc/powerpc платформе.
  • ‘z’ – Выводит буфер ftrace (function tracer)
  • ‘0′-’9′ – Устанавливает на сколько подробным будет сообщение ядра (Например ‘0′, выведет в консоль только предупреждающие сообщения типа PANICs или OOPSes.)


Наиболее часто используемые комбинации:
Alt+SysRq+ R-E-I-S-U-B

R - Забираем управлени клавиатурой у XServer'а (если он грохнулся)
E - Пытаемся красиво закрыть все приложения (SIGTERM)
I - Мочим их если не получилось договориться (SIGKILL)
S - Синхронизируем примонтированные файловые системы
U - Размонтируем всё что размонтируется
B - Перезагружаемся

Для любителей консоли:
В файл
/etc/sysctl.conf
добавляем
"kernel.sysrq = 1"
или в
/etc/sysconfig/sysctl 
вписываем
ENABLE_SYSRQ="yes"
для моментального включения/выключения используем
# echo "1" > /proc/sys/kernel/sysrq
# echo "0" > /proc/sys/kernel/sysrq
соответственно

А это возможные параметры:
0: отключить sysrq
1: включить sysrq
> 1 битовая маска для задания функций sysrq:
2 – включить котроль подробности логов (enable control of console logging level)
4 – включить контроль клавиатуры (enable control of keyboard (SAK, unraw))
8 – включить отладочную информацию для процессов (enable debugging dumps of processes etc.)
16 – включить команду синхронизации (enable sync command)
32 – включить перемонтировани в режим только для чтения (enable remount read-only)
64 – включить управление процессами (enable signalling of processes (term, kill, oom-kill))
128 – разрешить перезагрузку/выключение (allow reboot/poweroff)
256 – включить аккуратное выполнение задач реального времени (allow nicing of all RT tasks)

Для тех, кто не в курсе SysRq - находится на той-же клавише, что и PrintScreen:)

Комментариев нет:

Отправить комментарий