Книга: Разработка ядра Linux

Магическая клавиша SysRq

Магическая клавиша SysRq

Использование магической клавиши SysRq, которую можно активизировать с помощью конфигурационного параметра CONFIG_MAGIC_SYSRQ на этапе компиляции, часто позволяет значительно облегчить жизнь. Клавиша SysRq является стандартной на многих клавиатурах. Для аппаратных платформ i386 и PPC ей соответствует комбинация клавиш ALT-PrintScreen. Если указанный конфигурационный параметр активизирован, то специальные комбинации клавиш позволяют взаимодействовать с ядром независимо от того, чем ядро в данный момент нанимается. Это в свою очередь позволяет выполнять некоторые полезные операции даже на неработоспособной системе.

В дополнение к конфигурационному параметру существует вызов sysctl для включения и выключения этого свойства.

echo 1 > /proc/sys/kernel/sysrq

Список возможных комбинаций клавиш можно получить с консоли путем нажатия комбинации клавиш SysRq-h. Комбинация клавиш SysRq-s выполняет синхронизацию не сохраненных буферов файловых систем на диск, комбинация SysRq-u размонтирует все файловые системы, a SysRq-b — перегружает машину. Последовательное использование этих комбинаций клавиш позволяет более безопасно перегрузить машину, которая зависла, чем простое нажатие кнопки reset.

Если машина заблокирована очень сильно, то она может не отвечать на магические комбинации клавиш SysRq, или соответствующая операция не будет выполнена. Если же повезет, то эти комбинации клавиш смогут помочь при отладке, а также сохранить данные. В табл. 18.2 приведен список поддерживаемых команд SysRq.

Таблица 18.2. Список поддерживаемых команд SysRq

Команда Описание
SysRq-b Перегрузить машину (reboot)
SysRq-e Послать сигнал SIGTERM всем процессам, кроме процесса init
SysRq-h Отобразить на консоли помощь по использованию комбинаций клавиш SysRq
SysRq-i Послать сигнал SIGKILL всем процессам, кроме процесса init
SysRq-k Клавиша безопасного доступа: завершить все процессы, связанные с текущей консолью
SysRq-l Послать сигнал SIGKILL всем процессам, включая процесс init
SysRq-m Отобразить на консоли дамп информации по использованию памяти
SysRq-o Завершить работу машины (shutdown)
SysRq-p Отобразить на консоли дамп регистров памяти
SysRq-r Отключить прямой режим работы клавиатуры (raw mode)
SysRq-s Синхронизировать данные смонтированных файловых систем с дисковыми устройствами
SysRq-t Отобразить на консоли дамп информации о заданиях
SysRq-u Размонтировать все смонтированные файловые системы

В файле Documentation/sysrq.txt, который находится в каталоге исходных кодов ядра, приводится более полное описание. Реализация поддержки магической комбинации клавиш находится в файле drivers/char/sysrq.с. Магические комбинации клавиш SysRq — жизненно необходимый инструмент, который помогает в отладке и сохранении "гибнущей" системы, так как предоставляет большие возможности для любого пользователя при работе с консолью. Тем не менее необходимо соблюдать осторожность при его использовании на критичных машинах. Если же машина используется для разработок, то польза от этих команд огромная.

Оглавление книги


Генерация: 1.757. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз