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

Как управлять процессами в терминале Linux: 10 команд

7 min read Linux Обновлено 27 Dec 2025
Управление процессами в Linux: 10 команд
Управление процессами в Linux: 10 команд

Обложка: как управлять процессами в терминале Linux

Быстрые ссылки

  • top
  • htop
  • ps
  • pstree
  • kill
  • pgrep
  • pkill & killall
  • renice
  • xkill

Краткое введение

Процессы — это выполняющиеся программы. Каждая команда ниже помогает по‑разному: одни показывают, что запущено, другие — ищут процессы по имени, третьи — изменяют приоритет или убивают процесс. Многие команды выполняют одну задачу и хорошо сочетаются между собой — это философия Unix. Графические надстройки (например, htop) упрощают взаимодействие, но полезно знать базовые утилиты.


top

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

Скриншот top — список процессов с загрузкой CPU и памяти

Как пользоваться:

  • Запустите top просто введя top в терминале.
  • Нажмите q, чтобы выйти.
  • Для немедленного прерывания текущего процесса в терминале обычно работает Ctrl-C (это прерывает процесс в интерактивной сессии).

Совет: используйте top на удалённой машине по SSH, когда нет графического интерфейса.

htop

htop — улучшенная версия top с цветным и удобным интерфейсом. На большинстве дистрибутивов htop не установлен по умолчанию; в Ubuntu его можно установить так:

sudo apt-get install htop

Преимущества htop:

  • Навигация стрелками и действия через клавиши F (уничтожение процесса, изменение приоритета и т. д.).
  • Возможность сортировки по колонкам одной клавишей.
  • Интуитивное отображение дерева процессов и использования ресурсов.

Мы уже рассматривали htop подробнее в отдельных материалах — он удобен как на рабочей станции, так и на сервере с графической оболочкой.

ps

Команда ps перечисляет запущенные процессы. Базовый список всех процессов можно получить так:

ps -A

Результат ps -A — список PID и команд

Если процессов много, удобно прокрутить вывод через less:

ps -A | less

Нажмите q для выхода из less.

Чтобы найти конкретный процесс, комбинируйте ps с grep. Например, поиск процесса Firefox:

ps -A | grep firefox

Эта комбинация полезна, когда нужно увидеть PID и другие метаданные процесса. Альтернативы: ps aux для расширённого вывода, ps -ef для формата с родителями процессов.

pstree

pstree показывает процессы в виде дерева — полезно, чтобы понять, какие процессы были порождены другими (родительская/дочерняя связь).

pstree — дерево процессов с иерархией

Пример: X-сервер и графическая среда появятся под дисплей-менеджером, который их запустил. Используйте pstree, чтобы отследить происхождение фоновых задач.

kill

Команда kill отправляет сигнал процессу по его PID (идентификатору процесса). PID можно узнать через ps, top или pgrep.

kill PID

Скриншот примера команды kill — отправка сигнала процессу

По умолчанию kill отправляет сигнал TERM (вежливо попросить процесс завершиться). Если процесс не реагирует, используйте жесткий сигнал:

kill -9 PID

или

kill -KILL PID

Важно: -9 принудительно завершает процесс, но не даёт ему корректно освободить ресурсы.

pgrep

pgrep ищет PID по шаблону имени процесса. Это удобно, когда вы знаете имя процесса, но не хотите фильтровать вывод ps.

pgrep firefox

Результат pgrep — список PID, соответствующих шаблону

pgrep можно использовать в скриптах для автоматизации управления процессами (поиск PID и дальнейшие действия).

pkill и killall

pkill и killall убивают процессы по имени — не нужно сначала получать PID. Пример для Firefox:

pkill firefox

killall firefox

Отличия:

  • pkill работает по шаблону (регулярные выражения поддерживаются), полезно для точного сопоставления.
  • killall на некоторых системах различается по поведению (в некоторых ОС killall может означать «убить все процессы»), поэтому проверяйте man-страницу в вашем дистрибутиве.

renice

renice изменяет «nice»‑значение уже запущенного процесса — это влияет на планировщик и приоритет выполнения. Значения варьируются от -20 (высокий приоритет) до 19 (низкий приоритет). По умолчанию процесс запускается с nice 0.

renice 19 PID

Скриншот renice — изменение nice-значения процесса

Замечания:

  • Для повышения приоритета (отрицательное значение) требуются root-права. Используйте sudo:

sudo renice -19 PID

  • Часто используют pgrep вместе с renice, чтобы менять приоритет группе процессов.

xkill

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

xkill можно запускать не только из терминала: Alt-F2 → введите xkill и Enter. Часто привязывают xkill к горячей клавише для быстрого завершения проблемных окон.


Когда эти команды не сработают

  • Если процесс заморожен на уровне ядра (например, в состоянии D — uninterruptible sleep), kill -9 может не помочь. В таких случаях потребуется перезагрузка или устранение проблемы в драйвере/оборудовании.
  • Для контейнеров и изолированных сред (Docker, systemd‑cgroups) нужен доступ в пространство PID контейнера или использование команд управления контейнерами (docker kill, podman kill).
  • Если у вас недостаточно прав, некоторые действия (повышение приоритета, завершение системных демонов) будут недоступны без root.

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

  • systemctl stop/restart — для сервисов, управляемых systemd, завершающий процесс лучше через менеджер служб.
  • docker kill / kubectl delete pod — для контейнеризованных приложений используйте средства оркестрации.
  • ss / netstat — если проблема связана с сетью, сначала проверьте сокеты, чтобы не убивать процессы слепо.

Инструменты и подсказки: шпаргалка команд

  • Просмотр: top, htop, ps -A, ps aux
  • Поиск PID: pgrep <имя>, ps -A | grep <имя>
  • Дерево процессов: pstree -p
  • Убить по PID: kill PID | kill -9 PID
  • Убить по имени: pkill имя | killall имя
  • Изменить приоритет: renice <значение> PID
  • Графически убить окно: xkill

Примеры команд

ps -ef | grep nginx

pgrep -u www-data nginx

sudo renice -10 1234

pkill -f “java -jar myapp.jar”

Ментальные модели и быстрые правила

  • «Найдите — посмотрите — примите действие»: сначала определите PID (pgrep/ps/top), затем проверьте контекст (pstree/top), и только потом бейте (kill/pkill).
  • Не используйте kill -9 как первый шаг — сначала дайте процессу шанс корректно завершиться (SIGTERM), чтобы избежать утечек или повреждения данных.
  • Преференцию отдавайте управляющим инструментам (systemctl, docker), а не принудительному убийству, если вы работаете с сервисами.

Контрольные списки по ролям

Для администратора системы:

  • Проверить, какой сервис управляет процессом (systemctl status).
  • Попытаться graceful-остановку через systemctl stop или service stop.
  • Если не помогает, изучить логи (journalctl) и потом применить kill.

Для разработчика локально:

  • Использовать htop для быстрой диагностики.
  • renice для снижения приоритета фоновых задач при отладке.
  • pkill -f для остановки приложений по командной строке.

Для пользователя рабочего стола:

  • xkill для закрытия зависшего окна.
  • Проверить процессы браузера в htop перед убийством, чтобы не потерять данные.

Шаблон тактики при зависании приложения

  1. Найдите процесс: pgrep <имя> или ps -A | grep <имя>.
  2. Проверьте нагрузку: top или htop.
  3. Попробуйте SIGTERM: kill PID.
  4. Если не ответил — SIGKILL: kill -9 PID.
  5. Если процесс в состоянии D — проверьте dmesg и логи ядра.
  6. Если сервис — используйте systemctl и затем изучите логи.

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

  • Приложение завершено и не отображается в ps -A.
  • CPU/память вернулись к ожидаемому уровню.
  • Для сервисов — systemctl status показывает inactive/failed с понятной причиной.

Риски и смягчения

  • Риск: жесткое убийство может оставить файл блокировки или повредить данные. Смягчение: сначала SIGTERM, проверка логов.
  • Риск: убили не тот процесс по общему имени. Смягчение: использовать pgrep -a или ps -ef | grep, чтобы увидеть командную строку процесса.

Краткое резюме

Знание комбинации top/htop, ps/pstree, pgrep и kill дает полный набор инструментов для управления процессами в Linux. Используйте менеджеры служб для системных демонов, не злоупотребляйте принудительным завершением, и привязывайте xkill или htop к привычным рабочим процессам для быстрой реакции.


Есть команда или трюк, который вы используете иначе? Оставьте комментарий и поделитесь опытом.

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

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

Гиперсэмплинг: включение supersampling и советы
Графика

Гиперсэмплинг: включение supersampling и советы

Как ускорить запуск Windows 11
Windows 11

Как ускорить запуск Windows 11

Экспорт контактов Gmail: CSV и vCard шаг за шагом
How-to

Экспорт контактов Gmail: CSV и vCard шаг за шагом

Включить 2FA в 1Password быстро
Безопасность

Включить 2FA в 1Password быстро

Как слушать Spotify офлайн на Windows и Mac
Руководство

Как слушать Spotify офлайн на Windows и Mac

Чистка и дезинфекция носимых устройств
Гаджеты

Чистка и дезинфекция носимых устройств