Зачем нужна кнопка SysRq в Linux?

Хотя и редко, но иногда программы в Linux все же виснут. Если компьютер не откликается на Ctrl-Alt-Del и вы используете для перезагрузки кнопку reset, то дисковый кэш не будет сброшен и это приведет к потере данных на диске. А между тем, есть простой способ избежать всех этих проблем — волшебная клавиша SysRq. Поищите ее на своей клавиатуре, а затем перейдем к настройке.

Назначение клавиши SysRq

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

Настройка ядра

Для того, чтобы использовать SysRq ваше ядро Linux должно быть собрано с соответствующей опцией CONFIG_MAGIC_SYSRQ. Большинство современных дистрибутивов, таких как Ubuntu, Debian, Red Hat и т.п., собраны с поддержкой этой опции, но сама опция по-умолчанию неактивна. Активировать ее можно добавлением строки "kernel.sysrq = 1" в файл /etc/sysctl.conf.

Использование SysRq

На некоторых клавиатурах клавиша SysRq совмещена с клавишей Print. В графической среде, например, в GNOME или KDE, нажатие комбинации Alt+Print/SysRq+key приведет к снятию скриншота. Чтобы предупредить такое поведение, в "магическую" комбинацию был введен префикс Ctrl. Таким образом, чтобы вызвать SysRq надо нажать комбинацию Ctrl+Alt+SysRq+key.

Возможные значения key

Полную информацию можно получить из файла sysrq.txt, входящего в документацию к исходникам ядра. Но наиболее используемые комбинации следующие:

  • b) — моментально вызовет перезагрузку (без синхронизации и размонтирования дисков);
  • o) — команда выключения компьютера;
  • s) — синхронизирует все используемые файловые системы;
  • u) — перемонтирует все используемые файловые системы в режим только для чтения;
  • p) — выведет текущие значения регистров и флагов процессора в консоль;
  • t) — выведет список текущих задач и информацию о них;
  • m) — выведет информацию об используемой памяти;
  • e) — пошлет сигнал SIGTERM (нормальное завершение) всем процессам, за исключением init;
  • i) — пошлет сигнал SIGKILL (аварийное завершение) всем процессам, за исключением init;
  • l) — выведет стек всех активных процессоров.
Ваша оценка: Нет Средняя оценка: 5 (1 vote)
amlaml аватар

Сохранил на всякий случай!
Интересно!
Вдруг понадобится на каком-то компьютере?:-)

У меня уже убунта вешалась один раз
(когда я свой нынешний процессор попытался до 5ГГц разогнать:))

Ваша оценка: Нет
pomidorius аватар

Есть подозрение, что от аппаратных сбоев SysRq не спасет. :)

Сам пользовался несколько раз этой кнопкой. Иногда работает, иногда нет. Кстати, в некоторых руководствах по оптимизации ядра наоборот советуют отключать эту фичу как ненужную.

Ваша оценка: Нет

На то они и аппаратные, что на них только ресет действует.

Но при программных сбоях, когда уже другие средства исчерпаны, эта комбинация клавиш с последовательностью s, u ,b спасет от многих головных болей, связанных с потерей данных на фс.

Ваша оценка: Нет Средняя оценка: 5 (2 votes)
Яндекс.Метрика