3764
Магические 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» легче запомнить.
3 комментария
Так что сорри! )))
как поменять права файла, если даже рут не имеет права его редактировать, перемещать и удалать?
bash.org