Автор Тема: Клавиша SysRq  (Прочитано 8140 раз)

Оффлайн alexis031182

  • Full
  • ****
  • Сообщений: 1012
  • Репутация: +0/-0
    • http://www.slovensk.ru/fspo
    • E-mail
    • Личное сообщение (Оффлайн)
Клавиша SysRq
« : Ноября 20, 2008, 23:12:23 »
Ядро Linux, помимо основной своей функциональности, предлагает возможность использования специализированных комбинаций клавиш, во многих случаях позволяющих вернуть вашу систему из глубокого аута или хотя бы корректно завершить текущую активную сессию. Можно, конечно, "пройтись" и резетом по электронным мозгам, однако, как вы понимаете, это не самое лучшее решение. Волшебная клавиша SysRq - это ключевая составляющая в клавиатурной комбинации для вызова специфической команды Linux-ядра. Команды данного типа являются низкоуровневыми и исполняются вне зависимости от общего уровня занятости операционной системы. Они часто используется, когда требуется вывести систему из глубокого сна или для корректной перезагрузки компьютера, практически исключающей возможные повреждения файловой системы.
 
Системные команды, базирующиеся на использовании SysRq, имеют следующий шаблон клавиатурной комбинации клавиш для их вызова:

ALT + "SysRq or Prnt Scrn" + "Command key"
 
"Command key" в данном случае может быть одной из следующих клавиш:
  • 'B' - перезагрузка компьютера без выполнения синхронизации буферов данных и размонтирования дисков;
  • 'C' - перезагрузка компьютера при помощи kexec с возможностью получения отчёта о причинах падения системы;
  • 'D' - вывод списка всех существующих блокировок, приведших систему к текущему состоянию;
  • 'E' - отправка системного сигнала SIGTERM (завершение работы) всем исполняемым процессам, исключая init;
  • 'F' - вызов команды oom_kill для завершения (kill) процесса, поглотившего всю свободную память;
  • 'G' - вызов отладчика, используемого на ppc и sh платформах;
  • 'H' - вывод справочной информации о возможности использования тех или иных клавиш в клавиатурной комбинации;
  • 'I' - отправка системного сигнала SIGKILL (немедленное завершение работы) всем исполняемым процессам, исключая init;
  • 'K' - Secure Access Key (SAK), немедленное завершение работы всех программ в текущей виртуальной консоли. Внимание: обязательно ознакомьтесь со справкой по этой команде перед её использованием;
  • 'M' - вывод дампа состояния памяти на консоль;
  • 'N' - применяется для понижения приоритета исполнения (renice) для задач реального времени (Real Time);
  • 'O' - выключение компьютера (только если сконфигурировано и поддерживается);
  • 'P' - вывод дампа о текущих регистрах и флагах на консоль;
  • 'Q' - вывод дампа о списке всех выполняющихся таймерах;
  • 'R' - отключения клавиатуры из raw-режима и первод её в режим XLATE;
  • 'S' - попытка синхронизации буферов всех смонтированных дисков;
  • 'T' - вывод списка текущих задач с подробной информацией о них на консоль;
  • 'U' - попытка перемонтировать все смонтированные файловые системы в режим только для чтения;
  • 'V' - вывод дампа отладочной информации процессора Voyager SMP на консоль;
  • 'W' - вывод дампа информации о задачах, находящихся в блокированном (uninterruptable) состоянии;
  • 'X' - использование интерфейса xmon на ppc/powerpc платформах;
  • '0'-'9' - установка уровня логов ядра, выводимых на консоль.
Наиболее часто используемой комбинацией обычно является следующая: ALT + "SysRq or Prnt Scrn" + R-E-I-S-U-B. Для её использования нажмите и удерживайте нажатыми клавиши ALT и "SysRq or Prnt Scrn". Далее по очереди нажимайте клавиши R, E, I, S, U и B, выдерживая небольшой промежуток времени после нажатия каждой. Данная комбинация выполнит следующие действия:
  • освободит клавиатуру из-под контроля X сервера;
  • отправит сигнал завершения (SIGTERM) всем процессам;
  • отправит сигнал немедленного/безусловного завершения (SIGKILL) всем процессам, не откликнувшимся на предыдущий сигнал;
  • выполнит синхронизацию буферов смонтированных файловых систем;
  • размонтирует все смонтированные файловые системы;
  • перезагрузит компьютер.
Эти действия возможно помогут предотвратить или хотя бы уменьшат последствия краха операционной системы.

Во многих дистрибутивах клавиша SysRq по умолчанию не включена. Для её активации достаточно добавить в файл /etc/sysctl.conf строку "kernel.sysrq = 1", или можно отредактировать файл /etc/sysconfig/sysctl, установив значение ENABLE_SYSRQ в "yes".

Для временного включения SysRq (до следующей перезагрузки) можно использовать команду:
# echo "1" > /proc/sys/kernel/sysrqДля отключения:
# echo "0" > /proc/sys/kernel/sysrqПользователи openSUSE могут воспользоваться графическим мастером для управления доступом к SysRq. Запустите "YaST2->Система->Настройки ядра". Далее перейдите на вкладку "Параметры ядра" и отметьте галочку напротив опции "Активировать клавиши SysRq". Нажмите кнопку "Завершить".

 

Последние сообщения на форуме: