Зачем нужна кнопка 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) — выведет стек всех активных процессоров.
Главная тема: 

Комментарии

comrade аватар

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

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

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

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

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

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

Комментировать

Filtered HTML

  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.