Ключевые слова:linux, kernel, debug, (найти похожие документы)
From: Michurin Alexey <http://webcenter.ru/~intec/alexey/>
Subject: Магические SysRq клавиши в Linux
Здесь я хочу рассказать об использовании магических клавиш
SysRq. Информация почерпнута из документации к ядру Documentation/sysrq.txt.
Как активизировать магические клавиши SysRq
Магические SysRq клавиши -- это особые сочетания клавиш,
нажатие которых отслеживается ядром и приводит к определённым
действиям со стороны ядра.
Что бы сделать возможным использование клавиш SysRq, Вам
прежде всего надо верно скомпилировать ядро, поддержав в нём
магические клавиши (CONFIG_MAGIC_SYSRQ). Эта опция поддерживается
ядрами, начиная с версии 2.1.x.
После того, как Вы загрузите систему с новым ядром, Вы
должны активизировать механизм магических клавиш. Для этого следует
выполнить команду:
echo '1' >/proc/sys/kernel/sysrq
После этого, ядро начинает отслеживать нажатия магических клавиш и
реагировать на них.
На PC для использования магических клавиш следует нажимать
одновременно <Alt>-SysRq-<key>, где <key> -- одна из управляющих
клавиш. О том, как использовать магические клавиши на других
платформах читайте в документации на Ваше ядро. На момент написания
этой статьи у автора нет достоверных данных о работе магических SysRq
клавиш на платформах отличных от PC.
Возможности магических клавиш SysRq
Перехожу к описанию командных клавиш и их действий.
<r> - Переключает клавиатуру в режим XLATE. Это может пригодиться
в случаях, когда приложения, использующие raw-моду (например X-сервер)
заканчивают свою работу аварийно. С помощью команды <r> можно вернуть
клавиатуру в рабочее состояние.
<k> - Клавиша безопасного доступа (SAK -- Secure Access Key). Ядро
убивает все процессы на текущей консоли. Вы можете использовать эту
клавишу, что бы быть уверенным, что пароль не будет украден программой
троянским конём. Если оригинальный login был подменён злоумышленником
на троянского коня, то по команде <k> эта вредная программа будет
убита и init запустит подлинный login.
<b> - Немедленно перезапускает систему, не предпринимая попыток
синхронизации и демонтирования файловых систем. Эта команда может быть
использована, если Вы не можете перезапустить систему иным путём. Но
перед тем, как использовать команду <b> всё-таки рекомендуется подать
команды <s> (синхронизация файловых систем) и <u> (перемонтирование
файловых систем в режим "только для чтения").
<o> - Останавливает систему, если такая возможность предусмотрена
в ядре.
<s> - Ядро производит попытку синхронизации файловых систем (т.е.
записи на диске приводятся в соответствие с записями в кэше).
<u> - Ядро производит попытку перемонтирования файловых систем в
режим "только для чтения" (ro).
<p> - Ядро выдаёт dump текущего состояния регистров CPU на текущую
консоль.
<t> - Ядро выдаёт список текущих заданий и информацию о них на
текущую консоль.
<e> - Всем процессам, кроме init, посылается сигнал SIGTERM.
<i> - Всем процессам, кроме init, посылается сигнал SIGKILL.
<l> - Всем процессам, включая и init, посылается сигнал SIGKILL.
После этого система становится неработоспособна.
<0>..<9> - Устанавливает loglevel консоли. Т.е. регламентирует вывод
диагностических сообщений на консоль. Однако, не зависимо от того,
какой loglevel Вы установите для консоли, диагностические сообщения
по-прежнему будут регистрироваться демонами syslogd/klogd.
<h> - На консоль выдаётся подсказка по магическим клавишам. На
самом деле, любая клавиша, не нагруженная определённой функцией,
выдаёт подсказку, но "h" легче запомнить.