Гид по технологиям

Что делать при зависании Linux: приложения, мышь, полный сбой

6 min read Linux Обновлено 05 Dec 2025
Что делать при зависании Linux: приложения и система
Что делать при зависании Linux: приложения и система

TL;DR

Если зависло одно приложение — сначала попробуйте закрыть окно, затем используйте xkill или kill. При зависшей мыши откройте терминал (Alt + F2) или переключитесь на виртуальную консоль (Ctrl + Alt + F1) и завершите процессы. При полном зависании используйте комбинации Magic SysRq (Alt + SysReq + REISUB) для безопасной перезагрузки. Эти методы уменьшают риск повреждения файлов и делают холодный перезапуск последним средством.

Введение

Linux традиционно считается более стабильной ОС по сравнению со многими другими системами. Яркое тому подтверждение — Linux управляет более чем 95% суперкомпьютеров в мире. Тем не менее стабильность не исключает зависаний: приложения, графическая оболочка или даже вся система порой перестают отвечать. В этой статье подробно рассмотрены типичные сценарии зависания и пошаговые решения для каждого случая. Рекомендации проверены на Ubuntu 16.04; в других дистрибутивах поведение может отличаться.

Типы зависаний и общий подход

Различают три распространённых сценария:

  • Зависло одно или несколько приложений, остальная система реагирует.
  • Зависла мышь и графическая среда, но клавиатура и терминал доступны.
  • Полный «замороз»: клавиатура, мышь и GUI не отвечают.

Общий принцип: работать сверху вниз — от наиболее мягких и безопасных методов к более «жёстким». Сначала попытайтесь корректно завершить процесс, затем — перезапустить графику, и только в крайнем случае — использовать аварийную перезагрузку.

Зависло приложение

1) Попробуйте закрыть окно

Нажмите кнопку закрытия в заголовке окна. Операционная система может показать диалог «Приложение не отвечает» и предложить ожидать или принудительно завершить процесс.

Диалог «Принудительное завершение» в Ubuntu с неотвечающим приложением

Важно: при выборе «Force Quit» (Принудительно завершить) приложение завершится, но несохранённые данные будут потеряны.

2) Используйте xkill для оконных приложений

Если диалог не появился или кнопка не срабатывает, откройте терминал и выполните:

xkill

После запуска курсор превратится в крестик. Клик по окну завершит процесс, который владел этим окном. xkill удобен для GUI-приложений, но бесполезен для фоновых процессов без окна.

Указатель мыши Xkill в Ubuntu для завершения неотвечающего окна

3) Если процесс консольный или не реагирует на xkill

Для консольных приложений отправьте SIGINT (Ctrl + C) в том терминале, где запущен процесс. Если нужен более сильный вариант, найдите PID и убейте процесс:

ps aux | grep имя_процесса
sudo kill 
sudo kill -9   # при игнорировании SIGTERM

Примечание: kill -9 принудительно завершает процесс без корректной очистки, используйте только при необходимости.

Мышь не отвечает вместе с приложениями

Если мышь перестала реагировать, но клавиатура работает, используйте один из способов ниже.

1) Быстрый запуск терминала через Alt + F2

Нажмите Alt + F2, введите:

gnome-terminal

и нажмите Enter. В открывшемся терминале можно завершать процессы как описано выше.

Запуск терминала через Alt+F2 в Ubuntu

2) Переключение на виртуальную консоль

Если Alt + F2 не работает, переключитесь на виртуальную консоль сочетанием Ctrl + Alt + F1 (или F2–F6). Введите логин и пароль, затем завершите проблемные процессы через командную строку. После работы вернитесь в графическую сессию комбинацией Ctrl + Alt + F7.

3) Перезапуск графического сервера

Если нужен быстрый рестарт графики (X/LightDM), выполните в консоли:

sudo service lightdm restart

Важно: перезапуск GUI закроет все графические сессии — несохранённые данные будут потеряны.

Полный завис: клавиатура и мышь не работают

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

Примечание: клавиша может маркироваться SysRq или SysReq на вашей клавиатуре.

Часто используемые комбинации SysRq

  • Alt + SysReq + F — попросить ядро убить один процесс с наибольшим потреблением ресурсов.
  • Alt + SysReq + K — убить все процессы на текущем виртуальном терминале (безопасно для отдельного TTY).
  • Alt + SysReq + REISUB — безопасная последовательность для аккуратной перезагрузки.

Объяснение REISUB по шагам:

  • R — переключиться в XLATE режим (перехват клавиатуры у X)
  • E — отправить SIGTERM всем процессам, кроме init
  • I — отправить SIGKILL всем процессам, кроме init
  • S — синхронизировать все примонтированные файловые системы (sync)
  • U — перемонтировать файловые системы в режим «только чтение»
  • B — перезагрузить систему

Полезный мнемонический приём: REISUB = REVERSE(BUSIER).

Как включить работу Magic SysRq

Чтобы SysRq работал, параметр kernel.sysrq должен быть равен 1. Проверьте и при необходимости включите, отредактировав файл /etc/sysctl.d/10-magic-sysrq.conf и установив:

kernel.sysrq = 1

После изменения выполните sudo sysctl -p или перезагрузите систему.

Конфигурация параметра kernel.sysrq в Ubuntu

Важно: SysRq не творит чудес — если оборудование физически вышло из строя (например, проблемы с электропитанием), комбинации не помогут.

Дополнительные подходы и альтернативы

  • Подключайтесь по SSH с другого устройства и выполняйте команды дистанционно. Это особенно полезно на удалённых серверах и в ситуациях, когда локальная клавиатура/мышь не работают.
  • Используйте systemd-rescue или режим восстановления через загрузчик при повторяющихся зависаниях.
  • Логи: просматривайте /var/log/syslog, journalctl -b или dmesg для поиска причин зависания.
  • Мониторинг: настройте инструменты (top, htop, atop) и метрики, чтобы выявлять процессы, которые со временем «расползаются» по ресурсам.

Когда варианты не помогают: что делать администратору

  1. Соберите как можно больше данных перед жёсткой перезагрузкой: снимки журналов, состояние памяти, список процессов.
  2. Если доступен удалённый консольный доступ (iLO, iDRAC, IPMI), используйте его для отключения питания и контролируемого рестарта оборудования.
  3. Планируйте профилактику: обновление ядра, драйверов, проверка дисков (fsck) и тесты памяти (memtest).

Методология быстрого реагирования (мини-метод)

  1. Идентифицировать: один процесс, GUI или весь хост.
  2. Локально завершить приложение (кнопка/ xkill/ kill).
  3. Перейти в консоль при необходимости (Alt + F2 или Ctrl + Alt + F1).
  4. Перезапустить графику, если проблема локальна для GUI.
  5. Использовать SysRq для безопасного восстановления при полном зависании.
  6. Собрать логи и выполнить постинцидентный анализ.

Роли и чеклисты

Чеклист для обычного пользователя:

  • Сохраните изменения, если приложение отвечает.
  • Попробуйте закрыть окно и выбрать «Force Quit».
  • Запустите xkill, если окно не закрывается.
  • Откройте терминал через Alt + F2 и завершите процесс.

Чеклист для администратора:

  • Подключитесь по SSH и проверьте журналы.
  • Используйте top/htop для обнаружения утечек ресурсов.
  • При повторяющихся зависаниях инициируйте расследование (обновления, драйверы, аппаратные тесты).
  • Если система полностью не отвечает — используйте Magic SysRq и соберите логи после восстановления.

Критерии приёмки

Чтобы считать инцидент решённым:

  • Система вернулась в рабочее состояние без потери критичных данных.
  • Процесс, вызвавший зависание, либо завершён, либо диагностирован и помещён в план исправления.
  • Собраны логи и сформировано действие по предотвращению повторения.

Тест-кейсы для проверки восстановления

  1. Симулировать зависание GUI: запустить процесс, потребляющий 100% CPU, проверить, что xkill завершает окно.
  2. Отключить мышь вручную (имитация аппаратного залипания), проверить возможность переключения в виртуальную консоль и завершения процессов.
  3. Имитировать полный завис разной тяжести и проверить корректность работы REISUB при kernel.sysrq=1.

Когда эти методы не работают — типичные причины

  • Аппаратные проблемы: перегрев, сбои памяти, неисправные диски.
  • Низкоуровневые драйверы GPU или сетевого адаптера приводят к блокировке графики.
  • Повреждённая файловая система, которая не синхронизируется должным образом.

Однострочный глоссарий

  • SysRq — специальная клавиша для отправки команд прямо в ядро; REISUB — безопасная последовательность перезагрузки.
  • xkill — утилита для завершения графических окон.
  • SIGTERM/SIGKILL — сигналы завершения процесса: мягкий и принудительный.

Заключение

Установите последовательность действий и практикуйтесь на неважных машинах. Это поможет действовать быстро и безопасно при реальных зависаниях. Всегда начинайте с мягких методов и переходите к жёстким только при отсутствии других вариантов. Сбор логов и постинцидентный анализ снизят риск повторных проблем.

Примечание: описанные приёмы минимизируют вероятность порчи данных по сравнению с жестким отключением питания, поэтому холодный перезапуск оставьте на крайний случай.

Image credit: /home

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как исправить ERROR_RECEIVE_PARTIAL_EXPEDITED
Сеть

Как исправить ERROR_RECEIVE_PARTIAL_EXPEDITED

Будильники и таймеры в Windows 10 — настройка
Руководство

Будильники и таймеры в Windows 10 — настройка

4 бесплатных AI‑игры от Google Arts & Culture
Игры

4 бесплатных AI‑игры от Google Arts & Culture

Как изменить имя и идентификатор в Skype
Skype

Как изменить имя и идентификатор в Skype

Исправить BSoD 0xc0000428 в Windows
Windows

Исправить BSoD 0xc0000428 в Windows

Как изменить GPS на iPhone — Foneazy MockGo
Мобильные

Как изменить GPS на iPhone — Foneazy MockGo