Назад | Перейти на главную страницу

Как ключ SysRq используется в системе Linux?

Я понимаю, что SysRq ключ может использоваться для выполнения низкоуровневых системных команд на аварийном сервере Linux.

Может ли кто-нибудь объяснить, как использовать эту функцию, работает ли она удаленно через ssh или окно консоли vmware, а также для чего-либо еще, для чего ее можно использовать (кроме перезагрузки неисправной системы)?

Ключевые команды SysRq выдаются путем удержания Alt+SysRq и набрав любую комбинацию клавиш. Самая распространенная комбинация, о которой я знаю, это Alt+SysRq+RSEIUB:

  • р - Переключить клавиатуру из необработанного режима
  • S - Синхронизировать все смонтированные файловые системы
  • E - Отправить сигнал SIGTERM всем процессам, кроме init
  • я - Отправить сигнал SIGKILL всем процессам, кроме init
  • U - Перемонтировать все смонтированные файловые системы в режиме только для чтения
  • B - Немедленная перезагрузка системы, без размонтирования разделов и синхронизации

На странице википедии есть дополнительная информация о различных клавишах и о том, что они делают.

Чтобы ответить на оставшийся вопрос, да, он работает удаленно (пока у вас все еще есть связь с системой) и в консоли VMWare. Пока ядро ​​считывает нажатия клавиш, SysRq входные данные будут прочитаны и приняты меры. (Он эффективно отправляет команды непосредственно в ядро, минуя остальную систему)

Вы можете запустить alt-sysrq- / (alt-sysrq-? Со сдвигом, не имеющим значения), чтобы получить список доступных команд. Все время добавляются новые. Большинство из них опасны.

Чтобы запустить alt-sysrq-T, вы также можете "echo T> / proc / sysrq-trigger" или на последовательной консоли break-T.

Некоторые дистрибутивы Linux поставляются с отключенным волшебным sysrq в качестве ошибочной меры безопасности. Вы увидите "kernel.sysrq = 0" в /etc/sysctl.conf. Измените это на "kernel.sysrq = 1" и запустите "sysctl -p". Вы всегда должны проверять это в новой системе Linux, прежде чем столкнуться с зависанием, которое заставляет вас желать, чтобы magic sysrq работал.

REISUB чаще всего используется для безопасной перезагрузки зависшей системы. Но это не единственно возможное сочетание.

Обычно sysrq не работает, когда запущен X. Если ctrl + alt + fX не работает, вы можете попробовать отправить перед ним 'R'. В случае неудачи иногда «saK» с «K» исправляет ошибки; Он убивает все процессы на текущем уровне запуска, включая X-сервер. Затем вы можете попробовать другие команды sysrq. После SAK на X-сервере вы даже можете войти в систему с tty, если система все еще работает.

А иногда, когда глупый процесс останавливает загрузку, когда ctrl + C, ctrl + Z или ctrl + alt + del ничего не делают, буква «E», за которой следует ctrl + alt + del, может выполнить безопасную и нормальную перезагрузку.

Команда 'T' печатает трассировку, чтобы вы могли проверить, какой процесс или функция вызывает проблемы.

Посмотрите alt команд, нажав alt + sysrq + H