Как управлять зависшими приложениями и мониторить систему в Linux
Если приложение в Linux зависло, можно использовать графические мониторы (GNOME, KDE, XFCE) или командную строку (ps, kill, killall, xkill, top, vmstat, free, lscpu). Начните с графического монитора, затем переходите к kill (SIGTERM → SIGKILL) и xkill для окон. Для системной диагностики используйте vmstat и top, а для постоянного контроля — настраиваемые сочетания клавиш и регулярные проверки ресурсов.
Неприятная ситуация: программа перестала отвечать. На Windows вы бы вызвали диспетчер задач через Ctrl + Alt + Delete и завершили процесс. В Linux тот же набор клавиш может вести себя иначе. Хорошая новость: у Linux много инструментов для наблюдения за системой и принудительного завершения «бешеных» процессов. Вы можете выбрать графический интерфейс, близкий к Windows, или работать в терминале для большей точности.
Графические приложения
Эти программы наиболее похожи на диспетчер задач Windows. Интерфейс и поведение отличаются, но основные действия те же: найти процесс, посмотреть нагрузку и при необходимости завершить задачу. Ниже — три популярных монитора для основных окружений рабочего стола.
GNOME System Monitor
Приложение GNOME фокусируется на процессах, ресурсах и файловых системах. Первая вкладка показывает запущенные процессы, пользователя, PID и нагрузку. При выборе процесса появляется кнопка Завершить процесс, которая пытается корректно закрыть приложение. Если это не помогает, используйте команды ниже.
Вторая вкладка даёт живой график по каждому ядру CPU, использованию оперативной памяти и swap, а также по сетевой активности. Третья вкладка показывает использование хранилища и занятость разделов.
KDE System Monitor
KDE System Monitor (KSysGuard) обычно содержит две основные вкладки: Таблица процессов и Нагрузка системы. Таблица процессов выводит процессы и использование памяти. Чтобы завершить зависший процесс, щёлкните правой кнопкой и выберите Завершить процесс.
Вкладка с нагрузкой показывает текущую загрузку CPU, использование памяти и сетевую активность. Как и в GNOME, вы можете настраивать дополнительные вкладки, показывать логи или использование разделов.
XFCE Task Manager
Лёгкая по ресурсам среда XFCE предлагает простой менеджер задач без стандартных вкладок. Вы видите графики CPU и памяти, а под ними — список процессов.
В XFCE доступны три способа завершения процесса через правый клик: Stop, Terminate, Kill. Они соответствуют разным сигналам и степеням принуждения.
Настройка Ctrl + Alt + Delete для вызова монитора
По умолчанию Ctrl + Alt + Delete в Linux часто открывает меню выхода из сеанса, а не диспетчер задач. Это поведение можно изменить в настройках клавиатуры. На GNOME: откройте Настройки > Клавиатура, вкладка «Сочетания», затем Custom Shortcuts. Нажмите +, введите имя и команду для запуска мониторинга, например gnome-system-monitor. Затем назначьте сочетание клавиш (ctrl + alt + delete). Подтвердите замену предыдущей функции, если появится уведомление.
Важно: точные шаги зависят от дистрибутива и окружения рабочего стола, но общая идея — создать своё сочетание клавиш, которое запускает выбранный монитор.
Командная строка: когда графика не помогает
Терминал даёт больше контроля и деталей. Когда графический интерфейс зависает или процессы упрямо не завершаются, команды ниже незаменимы.
ps — список процессов
ps (process status) показывает процессы, запущенные текущим пользователем. Полезные опции:
- ps aux — список всех процессов всех пользователей;
- ps -ef — альтернативный формат с PID и PPID.
Найдите имя и PID, чтобы дальше работать с kill или killall.
kill и killall — сигналы и завершение
Команда kill отправляет сигнал процессу по PID. По умолчанию это SIGTERM (15) — корректный запрос на завершение. Если процесс не отвечает, используйте SIGKILL (9):
kill -9 2470SIGKILL принудительно завершает процесс. Если и он не действует, возможно, процесс ожидает завершения системного вызова в ядре; тогда он завершится после возврата из этого вызова.
kill -l покажет список сигналов.
killall позволяет завершить процесс по имени:
killall firefoxЭто удобно при множественных экземплярах одного приложения.
xkill — графический «клик и уничтожь»
Если вы не знаете имя процесса, введите в терминале xkill. Курсор превратится в крестик. Кликните по окну, которое нужно закрыть. Окно исчезнет, а процесс завершится.
top — интерактивный монитор процессов
top показывает процессы, нагружающие систему. Внутри top можно сортировать по CPU (нажмите P) или по использованию памяти (M). Чтобы завершить процесс из top, нажмите k и введите PID.
Альтернатива modern: htop — более удобный, цветной и интерактивный просмотрщик.
vmstat — моментальный снимок состояния
vmstat даёт моментальную картину количества процессов, использования памяти, swap и ввода/вывода. Запустите vmstat 1 5, чтобы снять пять снимков с интервалом в 1 секунду.
free — память и swap
free -h выводит удобочитаемый объём доступной и используемой оперативной памяти и swap. Колонки показывают буферы и кеш ядра.
lscpu — информация о CPU
lscpu помогает понять аппаратный контекст: сколько логических и физических ядер, архитектура процессора, размер кешей и т. п. Это полезно для интерпретации вывода top и vmstat.
Пошаговая методика для устранения зависших приложений
Ниже — краткая и воспроизводимая методика для большинства случаев.
- Оцените ситуацию: откройте графический монитор или выполните ps aux | grep <имя>.
- Попробуйте корректное завершение: в GUI нажмите Завершить процесс или в терминале kill PID.
- Если не помогло — сигнал SIGKILL: kill -9 PID или killall <имя>.
- Если окно отвечает, но приложение не выполняет действия — xkill по окну.
- Проверьте системные ресурсы: top, vmstat, free. Ищите горящую загрузку CPU, дефицит памяти, интенсивный swap или I/O.
- Если проблема повторяется — посмотрите логи (journalctl, /var/log/*) и создайте запись для последующего анализа.
Критерии приёмки
- Приложение закрывается и больше не отображается в ps aux.
- Нагрузка CPU возвращается к нормальному уровню.
- Система не начала использовать интенсивно swap.
- Если была утечка памяти — её источник идентифицирован или приложение перезапущено.
Когда команды не работают
Важно: если процесс висит в состоянии D (uninterruptible sleep), ни SIGKILL, ни другие сигналы его не прервут до окончания системного вызова. Такое бывает при проблемах с диском или сетевым хранилищем. В этом случае нужно диагностировать причину на уровне драйверов или оборудования.
Ментальные модели и эвристики
- Самое простое решение первым: сначала попытайтесь обычное завершение, затем принудительное.
- Разделяйте GUI-симптомы и системные симптомы: «зависло окно» ≠ «высокая системная нагрузка».
- Оцените по времени: если процесс висит менее нескольких секунд — подождите; если дольше минуты — действуйте.
- Если проблема повторяется после перезапуска приложения, ищите корень: конфигурация, расширения, подключённые устройства.
Роль-базиованный чеклист
Для обычного пользователя:
- Сохраните работу.
- Откройте графический монитор и найдите процесс.
- Попробуйте завершить процесс через GUI.
- Если не сработало, используйте xkill.
Для системного администратора:
- Выполните ps aux, top, vmstat.
- Используйте kill -15, затем kill -9 при необходимости.
- Проверьте журнал systemd (journalctl -xe).
- Анализируйте I/O и диск: iostat, dmesg.
Для разработчика:
- Соберите логи и дампы (core dump), при необходимости включите core_pattern.
- Запустите приложение под strace для локализации блокировок.
- Проверьте утечки памяти и зависания в отладчике.
Шпаргалка — основные команды
- ps aux — список процессов
- top / htop — интерактивный монитор
- kill PID — корректное завершение
- kill -9 PID — принудительное завершение
- killall name — завершить по имени
- xkill — закрыть окно кликом
- vmstat — снимок ресурса
- free -h — память и swap
- lscpu — информация о CPU
Минимальная проверка работоспособности (acceptance)
- Процесс исчезает из ps и top.
- CPU и память возвращаются к уровням до зависания.
- Сессия пользователя не теряет данных, если это возможно.
Примеры тест-кейсов
- Приложение «зависло» в UI, но процесс потребляет 0% CPU — ожидается: xkill закроет окно; данные сохранены.
- Процесс циклически использует 100% CPU — ожидается: kill -15 → kill -9 → процесс исчезает; нагрузка снижается.
- Процесс в состоянии D — ожидается: kill не помогает; требуется проверка dmesg и оборудования.
Советы по профилактике и поддержанию системы в форме
- Обновляйте систему и драйверы регулярно.
- Используйте мониторинг (Prometheus, Netdata) для серверов.
- Ограничивайте ресурсы через cgroups для ненадёжных приложений.
- Настройте автоматический сбор дампов и логов при падении.
Важно: принудительное завершение (SIGKILL) может привести к потерям несохранённых данных. Всегда пробуйте сначала корректное завершение.
Краткое резюме
Linux предоставляет множество инструментов для управления процессами. Графические мониторы удобны для большинства задач. Командная строка даёт точный контроль и больше информации для диагностики. Если процесс не реагирует на SIGKILL, ищите причину на уровне ядра или оборудования.
1‑строчный глоссарий
- PID — идентификатор процесса;
- SIGTERM — сигнал корректного завершения;
- SIGKILL — принудительное завершение;
- swap — область подкачки на диске;
- I/O — ввод/вывод.
Призыв к действию
Какой инструмент вы используете чаще всего для управления зависшими приложениями? Поделитесь своим опытом: советы, хитрости и любимые сочетания клавиш помогут другим пользователям.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone