В начало → Что делать, если система «зависла» → 2. Приложение не воспринимает команды |
Если система перестала отвечать на команды клавиатуры, и Ctrl+Alt+Backspace не помогает, приходится использовать более жесткие методы воздействия. Один из этих методов заключается в использовании низкоуровневых сигналов ядра. Они реализуются с помощью клавиши SysRq (System Request), также известной как PrintScreen.
Для использования этих сигналов вам может понадобиться пересобрать ядро с их поддержкой:
Kernel hacking ---> [*] Magic SysRq key
Также можно включить эту опцию «на лету», но работать это будет до первой перезагрузки компьютера:
echo "1" > /proc/sys/kernel/sysrq
Итак, вы можете использовать следующие комбинации клавиш в аварийной ситуации:
Alt+SysRq+R — изменение режима клавиатуры с Raw в XLAT. Если приложение зависло, и заблокировало клавиатуру, не оставляя вам возможности перейти в консоль простым нажатием Ctrl+Alt+F1, воспользуйтесь этой комбинацией. Теперь вы сможете перейти в консоль и прервать выполнение приложения.
Alt+SysRq+K — эта комбинация носит название Secure Access Key (SAK). Она убивает все запущенные в текущей виртуальной консоли процессы. Исторически SAK предназначался для других целей. Применять его советовали пользователям перед тем как залогиниться в систему. Дело в том, что довольно легко написать программу или скрипт, эмулирующие логин. Неискушенный пользователь вводит свой логин и пароль, а «троянский конь» сохраняет их в надежном месте, чтобы злоумышленник воспользовался плодами вашей доверчивости. Если же юзер перед тем как зайти в систему нажмет SAK, то прибьет трояна и получит нормальное, «оригинальное» приглашение системы.
Alt+SysRq+E — посылает сигнал SIGTERM всем процессам, кроме init. Сигнал SIGTERM означает, что система завершает некий процесс и прибирает за ним мусор — закрывает открытые процессом файлы, убивает временные и так далее;
Alt+SysRq+I — посылает сигнал SIGKILL всем процессам, кроме init. В отличие от предыдущего сигнала, SIGKILL грубо прерывает выполнение программы, не выполняя после этого «зачистку».
Alt+SysRq+L — посылает сигнал SIGKILL всем процессам, включая init. В этом случае система уходит в полный даун. Эту команду лучше не трогать.
Alt+SysRq+S — запускает аварийную синхронизацию (запись кэша) всех примонтированных дисков. Позволяет избежать потери данных.
Alt+SysRq+U — Перемонтировать все примонтированные файловые системы в режиме «только для чтения». Если операция прошла успешно, fsck не будет проверять файловые системы после «жесткого» перезапуска системы.
Alt+SysRq+B — перезагрузка системы. Очень быстрая, потому что этапы синхронизации и размонтирования пропускаются. Употреблять только в самых крайних случаях. С таким же успехом можете нажать на Reset.
Alt+SysRq+O — действует на систему подобно выстрелу в висок. Никакой синхронизации буфера, размонтирования и прочего. Сразу гасится свет, то бишь вырубается питание. Поэтому до нажатия этих клавиш следует синхронизировать буфер (Alt+SysRq+S), затем перемонтировать файловые системы в режиме «только для чтения» (Alt+SysRq+U) и только потом — Alt+SysRq+O. И запомните — сначала синхронизация, потом размонтирование, однако не наоборот.
В начало → Что делать, если система «зависла» → 2. Приложение не воспринимает команды |