М’яке перезавантаження та миттєве вимкнення комп’ютера в Ubuntu

Мало хто знає, для чого служить клавіша SysRq, яка поєднана з PrintScreen. Якщо ви віндовод і нічого більше, то є сенс пропустити цю замітку: у Windows цієї клавіші немає. Але якщо ви використовуєте ще й Лінукс, то SysRq може отримати в самих, здавалося б, безвихідних ситуаціях, якщо, звичайно, ядро ​​не в «паніці», про що зазвичай свідчать світлодіоди, що хаотично миготять, клавіатури. Цікаво? Тоді читаємо далі.

Не всякий дистрибутив Лінукса підтримує SysRq. Це залежить від значення змінної ядра CONFIG_MAGIC_SYSRQ. На щастя, ядро ​​більшості лінуксних дистрибутивів вже скомпільоване з роздільною здатністю цієї змінної. Принаймні в Ubuntu це точно так. Якщо ви сумніваєтеся, перевірте командою

sudo nano /etc/sysctl.conf

Щоб ознайомитися з хелпом до SysRq, треба перейти в віртуальну консоль (віконний емулятор консолі тут «не при справах»), натиснувши поєднання Ctrl + Alt + F2, ввести свої логін і пароль. Так, до речі: цифри пароля набирайте не в правій цифровій клавіатурі, а по-старому над алфавітною клавіатурою. Ось тепер, коли ви не в графічному середовищі, чарівне поєднання можна набирати і не натискаючи Ctrl, тобто Alt+SysRq+символ. Набираємо Alt+SysRq+H. На екран має надійти хелп англійською мовою:

SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E) memory-full-oom-kill(F) kill-all-tasks(I) thaw-filesystems( J) saK show-backtrace-all -active-cpus(L) show-memory-usage(M) nice-all-RT-tasks(N) powerOff show-registers(P) show-all-timers(Q) unRaw Sync show-task-states(T) Unmount force-fb(V) show-blocked-tasks(W) dump-ftrace-buffer(Z)

По-українськи значення символу, що додається, виглядало б наступним чином.

0-9 – рівень подробиці виведення системних повідомлень. 9 –максимальна подробиця.

C – запуск краш-тест вашої системи. Якщо в результаті цього запиту ядро ​​вашої системи не впало в паніку, у вас дуже надійна система. За цим запитом відбувається перезавантаження ядра.

F - вбиває процеси, що займають, "на думку ядра", занадто багато пам'яті. У мене систематично вбиває Firefox, якщо відкрито більше 10 вкладок. Запит може бути корисним, якщо машина «звопить» і підгальмовує.

J – розморожування (розблокування) всіх заморожених (заблокованих) файлових систем. Наприклад, ви «замонтували» розділ, почали з ним працювати, скажімо, архівувати, і система зависла. Запит допоможе позбавитися від недоступності розділу.

K – клавіша безпечного доступу (secure access key). Вбиває всі процеси на поточній консолі. Якщо у вашій машині працює троян, який може вкрасти або підмінити ваш пароль, то шкідливість тут же буде вбитий, і системний процес init запустить справжній логін.

L – виводить трасування стека всім активних процесорів. Цікаво тим, хто займається налагодженням ПЗ.

M – виводить обсяг зайнятої пам'яті. У Ubuntu працює, якщо ви попередньо встановите високий рівень подробиці виводу.

N - Виводить список завдань реального часу. Також працює, якщо ви попередньо встановили високий рівень виводу.

E – аварійно припиняє роботу всіх процесів, окрім init.

I – вбиває всі процеси, включаючи init.

T – виводить список завдань у консоль.

S – синхронізує всі файлові системи, записуючи всі буферизовані дані на жорсткий диск.

R – примусово повертає клавіатуру до робочого стану. При цьому ядро ​​починає працювати з клавіатурою безпосередньо, минаючи X-сервер, і лише в кодах ASCII.

T – виводить перелік процесів. Знову жпрацює лише за високому рівні подробиці виведення.

P – дамп регістрів процесора. Запит може бути цікавим для тих, хто займається налагодженням ПЗ.

Q – виводить події хард-таймерів. Працює, якщо встановлений високий рівень подробиці виводу.

O – терміново вимикає комп'ютер.

B – перезавантажує комп'ютер. Щоправда, повідомляють, що за ядра 3.8.0-25 відбувається не перезавантаження, а виключення. Але сам я не перевіряв.

U – перемонтує всі файлові системи у режим «тільки читання».

W – показує всі задачі, якщо такі є.

Z – виводить вміст буфера трасування роботи ядра.

Отже, раптово ваш Лінукс завис так, що не допомагає навіть перезавантаження «іксів» клавішами Alt+Del+BS. Спокій тільки спокій. У жодному разі не поспішайте натискати кнопку reset на корпусі комп'ютера. З дуже високою ймовірністю ви не втратите дані при послідовному натисканні клавіш R-E-I-S-U-B (утримуємо Alt+Ctrl+SysRq!). І знаєте, що? Завжди можете миттєво вимикати комп'ютер, що працює нормально, поєднанням Alt+Ctrl+SysRq+O. Якщо, звісно, ​​ви закрили свої програми. :)