Linux

Управление процессами в Linux: мониторинг и завершение задач

Гайд по эффективному управлению процессами в Linux с помощью стандартных утилит и systemd. Вы научитесь находить ресурсоёмкие задачи и безопасно их завершать.

Обновлено 27 апреля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04+Debian 11+CentOS Stream 9Fedora 38+

Введение / Зачем это нужно

Управление процессами в Linux — базовый навык для диагностики нагрузки и восстановления работы системы. Знание того, как находить ресурсоёмкие или зависшие задачи и как их безопасно завершать, помогает избежать перезагрузок сервера и потери данных. После выполнения этого гайда вы сможете быстро оценивать состояние системы и применять подходящие способы завершения процессов.

Требования / Подготовка

  • Система на базе Linux (Ubuntu 22.04+, Debian 11+, CentOS Stream 9 или Fedora 38+).
  • Доступ к терминалу под пользователем с правами sudo для установки утилит и управления сервисами.
  • Утилиты htop (опционально) и стандартные инструменты: top, ps, kill, systemctl.

Пошаговая инструкция

Шаг 1: Просмотр списка процессов

Запустите top для интерактивного мониторинга или htop для более удобного интерфейса с цветовой индикацией и поддержкой мыши:

top
htop

Для разового вывода всех процессов с деталями используйте:

ps aux --sort=-%cpu | head -20

Эта команда отсортирует список по потреблению CPU и покажет 20 самых активных процессов.

Шаг 2: Поиск конкретного процесса

Найдите PID (идентификатор процесса) по имени или части команды. Например, для процесса nginx:

ps aux | grep nginx

Или используйте pidof, чтобы получить только PID:

pidof nginx

💡 Совет: Чтобы исключить сам grep из результатов, используйте grep [n]ginx.

Шаг 3: Корректное завершение процесса

Сначала попробуйте мягкое завершение. Отправьте сигнал SIGTERM (15), чтобы процесс мог завершить текущие операции и освободить ресурсы:

kill -15 PID

где PID — числовой идентификатор процесса, например:

kill -15 1245

Шаг 4: Принудительное завершение

Если процесс игнорирует SIGTERM или завис, используйте SIGKILL (9). Этот сигнал принудительно завершает процесс без ожидания:

kill -9 PID

Пример:

kill -9 1245

⚠️ Важно: Принудительное завершение может привести к потере несохранённых данных. Используйте только в случае необходимости.

Шаг 5: Остановка через systemd

Для системных сервисов предпочтительнее управлять ими через systemctl. Это позволяет корректно остановить службу с учётом зависимостей:

sudo systemctl stop nginx

Проверить статус сервиса можно командой:

sudo systemctl status nginx

Если сервис должен быть отключён и после перезагрузки, выполните:

sudo systemctl disable nginx

Проверка результата

Убедитесь, что процесс больше не запущен. Для этого используйте:

ps -p PID

Если процесс не найден, команда вернёт пустой вывод или сообщение об ошибке. Для сервисов проверьте статус через:

sudo systemctl is-active nginx

Команда вернёт inactive, если сервис успешно остановлен.

Возможные проблемы

  • Процесс не реагирует на kill -15 и продолжает работать. В этом случае используйте kill -9. Если и это не помогает, проверьте, не находится ли процесс в состоянии D (непрерываемого сна), что может указывать на проблему с ядром или драйверами.
  • Недостаточно прав для завершения процесса. Используйте sudo перед командой kill или переключитесь на пользователя с необходимыми привилегиями.
  • Не удаётся найти PID по имени. Убедитесь, что процесс действительно запущен, и проверьте правильность написания имени или используйте более широкий фильтр через ps aux | grep -i имя.
  • Сервис не останавливается через systemctl. Проверьте логи через journalctl -u имя и убедитесь, что у юнита нет блокирующих зависимостей или таймаутов остановки. При необходимости настройте переопределение таймаута через systemctl edit имя.

Часто задаваемые вопросы

Как безопасно завершить процесс, чтобы не повредить систему?
В чём разница между kill и systemctl stop?
Что делать, если htop не установлен?

Полезное

Просмотр списка процессов
Поиск конкретного процесса
Корректное завершение процесса
Принудительное завершение
Остановка через systemd