Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
19 Июль 2018, 05:33:06
Новости:

Страниц: [1]   Вниз
Печать
Автор Тема: Волшебная клавиша SysRq / Printscreen  (Прочитано 8521 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ud@FF
Гость
« : 28 Апрель 2010, 01:39:46 »

Волшебная клавиша SysRq / Printscreen

Достаточно редко, но бывает что система зависает наглухо - ничто не совершенно в этом мире. Именно для этих целей в ядре Линукс имеется замечательная возможность:  клавиша SysRq.


Что это такое?
Подавляющее большинство виндоуз-пользователей полагают, что PrtSc / SysRq специально присутствует на клавиатуре для скриншотов - забывая, что эта кнопка появилась на клавиатуре задолго до появления редмонтовской конторы.
На самом деле эта клавиша - наша единственная прямая связь с ядром, которая работает всегда. При помощи некоторых комбинаций клавиш можно заставить систему аварийно сбросить данные на диски, размонтировать все файловые системы в режим "только-чтение" и перезагрузиться даже при наглухо зависшей системе.

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


Как ей пользоваться?

Сначала нужно убедиться, что она включена: в конфиге ядра CONFIG_MAGIC_SYSRQ должно иметь значение Y . Дальше применение такое: нажимаем и держим ALT, нажимаем SysRq, отпускаем всё и нажимаем одну из "командных" клавиш - ниже их краткое описание.


Командные клавиши

Ниже перечислены наиболее полезные клавиши, которые могут пригодиться для тех, кто проводит бесчеловечные эксперименты над системой или устанавливает проприетарные драйвера. Чтобы их легче было запомнить, будет написано слово, в котором эта буква есть по смыслу. Всё сказанное ниже актуально по крайней мере для ядер 2.6.20 и выше.

Одновременное нажатие клавиш Alt + SysRq +

    'H'elp - выводит все доступные возможности SysRq, выделяя большой буквой клавишу действия;

    loglevel'0'-'8' - позволяет менять уровень подробности вывода от 0 (только критические сообщения) до 8 (самый подробный режим);

    re'B'oot - немедленная перезагрузка системы, как кнопка RESET (без синхронизации и размонтирования файловых систем);

    'C'rashdump - выполняет директиву kexec для перезагрузки, чтобы получить сведения об ошибках;

    hol'D's - показывает все блокировки, которые держат устройства или файлы;

    power'O'ff - корректно выключает систему (если настроено и поддерживается, обычно это прямая команда отключения);

    'S'ync - пытается синхронизировать все примонтированные файловые системы, при этом пишет в консоли "Emergency Remount R/O" - когда этот процесс закончится, должно написать "Emergency Remount Complete";

    'U'nmount - пытается перемонтировать все примонтированные файловые системы в режим "только-чтение";

    show'T'asks - выдаст список текущих задач и информацию о них в текущую консоль;

    'N'ice - используется для того, чтобы сделать задачи реального времени с изменяемым приоритетом;

    sho'W'-blocked-tasks - выдаст список всех непрерываемых (заблокированных, ждущих окончание ввода-вывода) задач;

    show'M'em - выдаст информацию о доступной и занятой оперативной памяти, а так же степени использования своп-файла;

    'F'ull - вызвать oom_kill (out-of-memory kill) для прерывания приложений, забравших слишком много памяти (может занять продолжительное время);

    secure acces 'K'ey - убивает все программы на текущей консоли, но не применяйте её на консоли, где запущены иксы (графический сервер будет остановлен и вы не сможете увидеть то, что печатаете и то, что ответит SysRq);

    un'R'aw - забирает контроль над мышью и клавиатурой у Х-сервера, что полезно, если Х-севрвер завис: так можно перейти в консоль, убить Х-сервер или проверить логи;

    t'E'rm - послать сигнал завершения работы SIGTERM всем процессам, кроме init.

    K'I'LL - послать сигнал немедленного завершения работы SIGKILL всем процессам, кроме init.



То есть, например, для аварийной синхронизации данных жмём ALT+SysRq + s, далее ALT+SysRq + u и после этого можно жать на ресет или, что тоже самое ALT+SysRq+b
Записан
admin
Знания не сила, сила - это воля и умение применить знания
Администратор
Бог
*****

Карма: +226/-23
Offline Offline

Пол: Мужской
Сообщений: 2142


Главный


WWW
« Ответ #1 : 28 Апрель 2010, 12:27:25 »

+1 Огромное спасибо, за столь полное и качественно оформленное руководство
Записан

alexs1976
Новичок
*

Карма: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 23



« Ответ #2 : 21 Декабрь 2010, 14:23:09 »

Очень полезная вещь, спасибо за инфу!! Улыбка
Записан
Страниц: [1]   Вверх
Печать
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines

Страница сгенерирована за 0.073 секунд. Запросов: 20.