Что делать, если Линукс завис
Материал из Linux.Uz Wiki
Предлагаю сразу определиться — под «зависанием» понимается то состояние компьютера, когда он не откликается на действия пользователя. Такие случае в линуксе бывают редко и бывают в основном из-за следующих причин:
- Кривые проприетарные драйвера или приложения. Старайтесь использовать при возможности только OpenSource.
- Проблемы с железом.
- Нестабильные версии программ.
- Извращенные действия пользователей
Многие, в таких обстоятельствах, просто жмут кнопку reset. Подход немного неправильный. Хоть и теперь у всех используются журналируемые ФС [1], все равно данные могут не успеть записаться и что-то может повредиться. Есть более разумный способ — Magic System Request Key.
Клавиша SysRq на клавиатуре предназначалась изначально не для скриншотов (сейчас она на большинстве клавах и называется PrintScreen). В линуксе она служит для прямой связи с ядром. То есть, если повисли иксы до такой степени, что не работает Ctrl+Alt+Backspace, иными словами, до такой степени, что комп не реагирует на клавиатуру, линукс все равно будет перехватывать клавишу SysRq, если конечно само ядро не ушло в панику. Так вот, чтобы комп «отвиснул», надо послать ядру такие сочетания клавиш поочередно:
- Alt+SysRq+R (Чтобы возвратить управление клавиатуре. После этой команды можно попробовать нажать Ctrl+Alt+F1 и попасть в консоль, а там уже залогиниться и выполнить sudo reboot или другие команды для исправления ситуации. Если это не поможет, тогда вводим комбинации дальше.)
- Alt+SysRq+E (Посылается сигнал завершения всем процессам. Так сказать, попытка завершить проги «по-хорошему». Если зависшая прога отреагирует на него, тогда все данные из этой проги точно сохраняться.)
- Alt+SysRq+I (Убиваем все процессы, которые не захотели завершиться по-хорошему.)
- Alt+SysRq+S (Синхронизация жесткого диска, то есть записывание кэша из памяти на жесткий диск, чтобы не потерять данные.)
- Alt+SysRq+U (Перемонтируем все разделы в режим «только чтение», чтобы еще лучше обезопаситься от потери данных.)
- Alt+SysRq+B (Собственно, сам ребут. Аналог ресета.)
Нажимать это все желательно с небольшими паузами. Ну или можно подсмотреть в вывод консоли по dmesg, если первые команнды помогли завершить зависшие приложения.
Более подробно на тему SysRq Magic Key можно почитать в документации к самому ядру (Documentation/sysrq.txt). Ну и еще пару ссылок:
- http://mydebianblog.blogspot.com/2007/07/sysrq-printscreen.html
- http://forum.ubuntu.ru/index.php?topic=39463.0
- http://ru.wikipedia.org/wiki/SysRq
- http://en.wikipedia.org/wiki/Magic_SysRq_key

