Використовуйте ключ Magic SysRq на Linux для виправлення заморожених серверів X, чистого перезавантаження та запуску інших команд низького рівня
У Linux магічний ключ SysRq може надсилати команди безпосередньо до ядра Linux. Ви можете використовувати його для відновлення після зависання або чистого перезавантаження системи, навіть якщо нічого не відповідає.
Магічний ключ SysRq реалізований як частина драйвера клавіатури Linux - він буде працювати до тих пір, поки ядро Linux буде працювати. Тільки паніка ядра повинна вимкнути цю комбінацію клавіш.
Зображення за кредитом: solylunafamilia на Flickr
Використання ключа Magic SysRq
Клавіша SysRq розташована біля клавіші Scroll Lock на клавіатурі - клавіша Sys Rq, як правило, така ж, як і клавіша Print Screen. "Магічна" комбінація SysRq - Alt + SysRq.
Щоб скористатися цією комбінацією клавіш, ядро Linux повинно бути скомпільоване з опцією компіляції CONFIG_MAGIC_SYSRQ - більшість дистрибутивів Linux матиме це за замовчуванням. Припускаючи, що він буде скомпільований у ваше ядро, його можна ввімкнути або вимкнути в запущеній системі, змінивши значення / proc / sys / kernel / sysrq. Щоб перевірити, чи ввімкнено, виконайте таку команду:
cat / proc / sys / kernel / sysrq
Якщо ви бачите "1", магічна клавіша SysRq увімкнена.
Якщо ви бачите "0", ви повинні ввімкнути його самостійно, виконавши команду root:
echo “1”> / proc / sys / kernel / sysrq
Робота з Frozen X Server
Якщо ваш X-сервер (програма, що працює з графічним робочим столом) замерзає, ви можете виявити, що ви не можете використовувати вашу систему. Є кілька чарівних команд SysRq, які можуть допомогти:
- Alt + SysRq + r - Виймає клавіатуру з режиму сировини, віддаляючи управління від X-сервера. Після запуску цієї комбінації ви зможете використовувати комбінації клавіш Ctrl + Alt + F1 (та інші клавіші F) для перемикання на іншу консоль і перезавантаження X.
- Alt + SysRq + k - Вбиває всі програми на поточній віртуальній консолі, включаючи X. Можна також увімкнути комбінацію клавіш Ctrl + Alt + Backspace у налаштуваннях клавіатури Ubuntu, щоб перезавантажити X-сервер - однак цей ярлик реалізований X-сервером і не завжди може працювати.
Чисто перезавантаження системи
Використовувані послідовно, деякі з цих дій можуть бути використані для чистого завершення процесів, очищення даних на диск, відключення всіх файлових систем і перезавантаження комп'ютера. Щоб виконати цей процес, натисніть і утримуйте комбінацію клавіш Alt + SysRq і - утримуючи клавіші Alt і SysRq - введіть наступні клавіші в порядку, призупинивши на кілька секунд між кожною клавішею:
reisub
Мнемоніка "Raising Eлефанти Is So Uстрого Bчасто використовується для запам'ятовування цієї послідовності. Ось що робить кожен ключ:
- r - Вставляє клавіатуру в сирому режимі, відводячи її від сервера X.
- e - Відправляє сигнал завершення до всіх процесів, просячи їх закінчити витончено.
- i - Відправляє сигнал убийства всім процесам, змушуючи їх негайно завершитися.
- s - Видаляє дані з вашого кешу на диск.
- u - Перезавантажує всі файлові системи лише для читання.
- b - Перезавантаження комп'ютера.
Більше команд
Ось деякі інші дії, які можна виконати за допомогою магічного ключа SysRq. Щоб виконати дію, натисніть і утримуйте клавіші Alt + SysRq під час введення літери:
- n - Скидає хороший рівень (пріоритет) всіх пріоритетних процесів високого та реального часу.
- f - Дзвінки oom_kill, які уб'ють процес вискокування пам'яті.
- o - Вимикає комп'ютер.
Є й інші дії, але вони можуть бути більш корисними для розробників, ніж середній Linux-майстер. Для отримання додаткової інформації про магічний ключ SysRq - і повний список дій, які можна виконати - зверніться до файлу sysrq.txt, включеного в ядро Linux.