Команда ps в Linux — как посмотреть и остановить процессы
Что делает ps
ps (Process Status) показывает состояние процессов в момент вызова — это не монитор в реальном времени. Кратко: ps выводит PID, терминал, время CPU и команду, запустившую процесс.
Краткие определения:
- PID — уникальный идентификатор процесса.
- TTY — терминал, откуда запущен процесс (если применимо).
- TIME — суммарное время CPU, потраченное процессом.
- CMD / COMMAND — команда или путь к исполняемому файлу.
Важно: ps выдает статичный снимок. Для динамического наблюдения используйте top или htop.
Основные способы использования
Ниже — набор практичных примеров с корректной синтаксией. Все примеры предполагают запуск в shell.
- Полный список процессов всех пользователей
ps -e- Подробный список (широкий формат)
ps -ef- Отфильтровать по PID
ps -p 1234,5678- Процессы конкретного пользователя
ps -u username- Все активные процессы
ps ax- Активные процессы с информацией о пользователях и потреблении
ps aux- Фильтрация по имени программы
ps aux | grep dockerИли фильтрация по имени с опцией C:
ps -C dockerd- Показать специфические столбцы
ps -e -o pid,uname,pcpu,pmem,commОпция -o позволяет указать любые столбцы из списка ps (см. man ps).
- Иерархическое дерево процессов
ps -e --forest–forest рисует древовидную структуру процессов. Чтобы скрыть графические ветви, используйте -H.
- Показать нити (threads) процесса
ps -p 4041 -L- Показать процессы, запущенные от root (реальный / эффективный UID)
ps -f -U root -u rootКак остановить процесс
- Найдите PID с помощью ps (или pgrep).
- Попробуйте корректное завершение:
kill PID. - Если процесс не завершается — принудительный сигнал:
kill -9 PID. - Есть удобные альтернативы:
pkill <имя>(по имени),killall <имя>(убивает все процессы с именем).
Важно: kill -9 не дает процессу выполнить завершающие действия (закрыть файлы, очистить ресурсы). Используйте его, когда нет другого выхода.
Методика: как быстро найти «пожирателя» ресурсов
- Откройте терминал и выполните
ps aux --sort=-%cpu | head -n 15— это покажет топ-15 по загрузке CPU. - Для памяти:
ps aux --sort=-%mem | head -n 15. - Если нужен более свежий монитор — запустите
topилиhtop. - Если процесс нестабилен, снимите логи и проверьте время старта (START).
- После подтверждения — завершите процесс корректным сигналом, затем при необходимости
-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/ и /proc/.
Можно ли отфильтровать процессы по командной строке целиком?
Да. Используйте ps aux | grep "часть_команды" или pgrep -a имя для отображения PID и команды.
Примерный чек-лист действия при зависании приложения
- Выполнить
ps aux --sort=-%cpu | head -n 10. - Если процесс вверху —
ps -p PID -o pid,ppid,uname,pcpu,pmem,comm,lstart. - Попробовать
kill PID. - Просмотреть логи приложения.
- Если не уходит —
kill -9 PIDи задокументировать причины.
Источники инструментов (комментарий)
ps — часть пакета procps (обычно предустановлен в Linux). Для динамического мониторинга используйте top/htop.
Подсказка: снимок вывода ps с колонками PID, TTY, TIME, CMD.
Иллюстрация: пример фильтрации процесса по имени через опцию -C.
Иллюстрация: показ выборочных колонок через опцию -o.
Иллюстрация: вывод процессов пользователя root в полном формате.
Резюме
ps — простой и мощный инструмент для получения снимка запущенных процессов. Сочетайте его с grep, pgrep и kill для быстрой диагностики и устранения проблем. Используйте мягкие сигналы для корректного завершения и прибегайте к kill -9 только в экстренных случаях.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента