Учебники (How-To & F.A.Q)
   3765

Магические SysRq клавиши в Linux (linux kernel debug)

Учебники (How-To & F.A.Q): Магические SysRq клавиши в Linux (linux kernel debug)

Как активизировать магические клавиши 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» легче запомнить.
  • 1
  • +1
?
Чтобы оставаться на месте, нужно бежать, а чтобы двигаться немного вперед, нужно бежать в два раза быстрее...

3 комментария

avatar
Не помешало бы указать первоисточник, прежде чем бездумно копировать. https://www.opennet.ru/base/sys/sysrq.txt.html
0
avatar
Мне запретили указывать ссылки на источники вот в этой теме: manjaro.ru/blog/how-to/avtomaticheskaja-ssh-avtorizacija-po-kljuchu.html

Так что сорри! )))
?
Чтобы оставаться на месте, нужно бежать, а чтобы двигаться немного вперед, нужно бежать в два раза быстрее...
0
avatar
у меня вот такой глюк
<code>[ypp@manjaro ~]$ cat /proc/sys/kernel/sysrq
16
$ sudo echo '1' >/proc/sys/kernel/sysrq
bash: /proc/sys/kernel/sysrq: Отказано в доступе
</code>
как поменять права файла, если даже рут не имеет права его редактировать, перемещать и удалать?
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.