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

Команда ps в Linux — как посмотреть и остановить процессы

• 4 min read • Linux • Обновлено 28 Nov 2025
Команда ps в Linux: как найти и убить процессы
Команда ps в Linux: как найти и убить процессы

Что делает ps

ps (Process Status) показывает состояние процессов в момент вызова — это не монитор в реальном времени. Кратко: ps выводит PID, терминал, время CPU и команду, запустившую процесс.

Краткие определения:

  • PID — уникальный идентификатор процесса.
  • TTY — терминал, откуда запущен процесс (если применимо).
  • TIME — суммарное время CPU, потраченное процессом.
  • CMD / COMMAND — команда или путь к исполняемому файлу.

Важно: ps выдает статичный снимок. Для динамического наблюдения используйте top или htop.

Основные способы использования

Ниже — набор практичных примеров с корректной синтаксией. Все примеры предполагают запуск в shell.

  1. Полный список процессов всех пользователей
ps -e
  1. Подробный список (широкий формат)
ps -ef
  1. Отфильтровать по PID
ps -p 1234,5678
  1. Процессы конкретного пользователя
ps -u username
  1. Все активные процессы
ps ax
  1. Активные процессы с информацией о пользователях и потреблении
ps aux
  1. Фильтрация по имени программы
ps aux | grep docker

Или фильтрация по имени с опцией C:

ps -C dockerd
  1. Показать специфические столбцы
ps -e -o pid,uname,pcpu,pmem,comm

Опция -o позволяет указать любые столбцы из списка ps (см. man ps).

  1. Иерархическое дерево процессов
ps -e --forest

–forest рисует древовидную структуру процессов. Чтобы скрыть графические ветви, используйте -H.

  1. Показать нити (threads) процесса
ps -p 4041 -L
  1. Показать процессы, запущенные от root (реальный / эффективный UID)
ps -f -U root -u root

Как остановить процесс

  1. Найдите PID с помощью ps (или pgrep).
  2. Попробуйте корректное завершение: kill PID.
  3. Если процесс не завершается — принудительный сигнал: kill -9 PID.
  4. Есть удобные альтернативы: pkill <имя> (по имени), killall <имя> (убивает все процессы с именем).

Важно: kill -9 не дает процессу выполнить завершающие действия (закрыть файлы, очистить ресурсы). Используйте его, когда нет другого выхода.

Методика: как быстро найти «пожирателя» ресурсов

  1. Откройте терминал и выполните ps aux --sort=-%cpu | head -n 15 — это покажет топ-15 по загрузке CPU.
  2. Для памяти: ps aux --sort=-%mem | head -n 15.
  3. Если нужен более свежий монитор — запустите top или htop.
  4. Если процесс нестабилен, снимите логи и проверьте время старта (START).
  5. После подтверждения — завершите процесс корректным сигналом, затем при необходимости -9.

Чек-листы по ролям

Администратор:

  • Проверить процессы: ps -ef и ps aux --sort=-%cpu.
  • Просмотреть дерево процессов: ps -ef --forest.
  • Проверить владельца и рабочую директорию процесса (если нужно, через /proc/PID).
  • При необходимости аккуратно завершить: kill PID → логирование события → kill -9 как крайняя мера.

Обычный пользователь:

  • Найти свои процессы: ps -u $(whoami).
  • Если GUI завис — найти PID процесса окружения (например, браузера) и завершить: kill PID.
  • Сообщить администратору, если процессы системные или требуют прав root.

Шпаргалка — быстрые команды

ps -e                     # все процессы
ps -ef                    # подробный список
ps aux                    # все процессы с показом использования ресурсов
ps -p 1234                # показать процесс с PID 1234
ps -u alice               # процессы пользователя alice
ps -e --forest            # дерево процессов
ps -p 4041 -L             # показать нити процесса
ps -e -o pid,uname,pcpu,pmem,comm  # выбрать колонки
ps aux | grep name        # поиск по имени
pgrep -l name             # быстрый поиск PID по имени
kill PID                  # корректное завершение
kill -9 PID               # принудительное завершение
pkill name                # убить по имени
killall name              # убить все процессы с именем

Ментальные модели и эвристики

  • «Снимок и подтверждение»: ps даёт снимок — повторите команду или используйте top, чтобы подтвердить рост нагрузки.
  • «Сверху вниз»: сначала ищите процессы с высокой загрузкой (%CPU или %MEM), затем смотрите дерево процессов, чтобы понять, какой процесс породил злонамеренный дочерний.
  • «Корректно, затем принудительно»: всегда сначала пробуйте мягкий сигнал (SIGTERM), затем — SIGKILL.

Когда ps может подвести (ограничения)

  • ps не динамичен: он не показывает изменения в реальном времени.
  • При большом количестве процессов вывод сложно анализировать без фильтров.
  • Некоторые процессы могут быстро перезапускаться системой (systemd, сервис-менеджеры) — в этом случае kill может не помочь без изменения конфигурации сервиса.

Альтернативы: top, htop, atop, pidstat, pgrep — выбирайте по задаче.

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

  • Вы можете найти PID процесса, влияющего на систему.
  • Вы уверены в владельце процесса и причинах его активности.
  • Процесс корректно завершён или задокументирован план дальнейших действий (например, изменение сервиса в systemd).

Краткий словарь (1 строка)

  • ps: команда для вывода статуса процессов;
  • PID: идентификатор процесса;
  • SIGTERM (по умолчанию kill): мягкое завершение;
  • SIGKILL (kill -9): принудительное завершение.

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

Можно ли безопасно использовать kill -9?

Нет, не всегда. kill -9 (SIGKILL) принудительно прерывает процесс без возможности корректного завершения. Используйте только если мягкие сигналы (например, kill или kill -15) не работают.

Как определить, кто запустил процесс?

Посмотрите столбец USER в ps -ef или ps aux. Для более глубокой информации — проверьте /proc//status и /proc//cmdline.

Можно ли отфильтровать процессы по командной строке целиком?

Да. Используйте ps aux | grep "часть_команды" или pgrep -a имя для отображения PID и команды.

Примерный чек-лист действия при зависании приложения

  1. Выполнить ps aux --sort=-%cpu | head -n 10.
  2. Если процесс вверху — ps -p PID -o pid,ppid,uname,pcpu,pmem,comm,lstart.
  3. Попробовать kill PID.
  4. Просмотреть логи приложения.
  5. Если не уходит — kill -9 PID и задокументировать причины.

Источники инструментов (комментарий)

ps — часть пакета procps (обычно предустановлен в Linux). Для динамического мониторинга используйте top/htop.

Ps Command Подсказка: снимок вывода ps с колонками PID, TTY, TIME, CMD.

Use Ps On Linux C Flag Иллюстрация: пример фильтрации процесса по имени через опцию -C.

Use Ps On Linux O Flag Иллюстрация: показ выборочных колонок через опцию -o.

Use Ps On Linux Root Processes 2 Иллюстрация: вывод процессов пользователя root в полном формате.

Резюме

ps — простой и мощный инструмент для получения снимка запущенных процессов. Сочетайте его с grep, pgrep и kill для быстрой диагностики и устранения проблем. Используйте мягкие сигналы для корректного завершения и прибегайте к kill -9 только в экстренных случаях.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро