ps (статус процессов) – это встроенная утилита Unix/Linux для просмотра информации о выборе запущенных процессов в системе: она считывает эту информацию из виртуальных файлов в файловой системе /proc. Это одна из важных утилит для администрирования системы, специально для мониторинга процессов, чтобы помочь вам понять, что происходит в системе Linux.
У нее много опций для манипулирования выводом, однако вы обнаружите, что только небольшое количество из них практически полезны для ежедневного использования.
См. также: Все, что вам нужно знать о процессах в Linux [Подробное руководство]
В этой статье мы рассмотрим 30 полезных примеров команд ps для мониторинга активных процессов на системе Linux.
Обратите внимание, что ps выдает вывод с заголовком строки, который представляет собой значение каждого столбца информации, вы можете найти значение всех меток на странице руководства ps.
Перечислите все процессы в текущей оболочке
1. Если вы запустите команду ps без аргументов, она отобразит процессы текущей оболочки.
$ ps

Печать всех процессов в различных форматах
2. Отображение каждого активного процесса в системе Linux в общем (Unix/Linux) формате.
$ ps -A OR $ ps -e

3. Показать все процессы в формате BSD.
$ ps au OR $ ps axu

4. Чтобы выполнить полное форматирование списка, добавьте флаг -f
или -F
.
$ ps -ef OR $ ps -eF

Показать процессы, запущенные пользователем
5. Вы можете выбрать все процессы, принадлежащие вам (запустившие команду ps, в данном случае root), введите:
$ ps -x
6. Чтобы показать процессы пользователя по реальному идентификатору пользователя (RUID) или имени, используйте флаг -U
.
$ ps -fU tecmint OR $ ps -fu 1000

7. Чтобы выбрать процессы пользователя по эффективному идентификатору пользователя (EUID) или имени, используйте опцию -u
.
$ ps -fu tecmint OR $ ps -fu 1000
Показать все процессы, запущенные как root (реальный и эффективный идентификатор)
8. Нижеприведенная команда позволяет просмотреть каждый процесс, запущенный с привилегиями пользователя root (реальный и эффективный идентификатор) в формате пользователя.
$ ps -U root -u root

Показать групповые процессы
9. Если вы хотите перечислить все процессы, принадлежащие определенной группе (реальный идентификатор группы (RGID) или имя), введите.
$ ps -fG apache OR $ ps -fG 48

10. Чтобы перечислить все процессы, принадлежащие эффективному имени группы (или сеансу), введите.
$ ps -fg apache
Показать процессы по PID и PPID
11. Вы можете перечислить процессы по PID следующим образом.
$ ps -fp 1178

12. Чтобы выбрать процесс по PPID, введите.
$ ps -f --ppid 1154

13. Сделайте выбор с использованием списка PID.
$ ps -fp 2226,1154,1146

Показать процессы по TTY
14. Чтобы выбрать процессы по tty, используйте флаг -t следующим образом.
$ ps -t pts/0 $ ps -t pts/1 $ ps -ft tty1

Печать дерева процессов
15.Дерево процессов показывает, как процессы на системе связаны друг с другом; процессы, у которых были убиты родители, принимаются системой init (или systemd).
$ ps -e --forest

16.Вы также можете напечатать дерево процессов для данного процесса таким образом.
$ ps -f --forest -C sshd OR $ ps -ef --forest | grep -v grep | grep sshd

Печать потоков процессов
17.Для печати всех потоков процесса используйте флаг -L
, это покажет столбцы LWP (легковесный процесс) а также NLWP (количество легковесных процессов).
$ ps -fL -C httpd

Указание пользовательского формата вывода
Используя опции -o или –format, команда ps позволяет создавать пользовательские форматы вывода, как показано ниже.
18.Для перечисления всех форматных спецификаторов включите флаг L
.
$ ps L
19.Следующая команда позволяет просмотреть PID, PPID, имя пользователя и команду процесса.
$ ps -eo pid,ppid,user,cmd

20.Ниже приведен еще один пример пользовательского формата вывода, показывающий группу файловой системы, приятное значение, время запуска и прошедшее время процесса.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime

21.Чтобы найти имя процесса по его PID.
$ ps -p 1154 -o comm=

Отображение родительских и дочерних процессов
22.Для выбора конкретного процесса по его имени, используйте флаг -C, это также отобразит все его дочерние процессы.
$ ps -C sshd

23. Найдите все PID всех экземпляров процесса, полезно при написании скриптов, которые должны читать PID из стандартного вывода или файла.
$ ps -C httpd -o pid=

24. Проверьте время выполнения процесса.
$ ps -eo comm,etime,user | grep httpd
Ниже показано, что служба HTTPD работает 1 час, 48 минут и 17 секунд.

Устранение проблем с производительностью системы Linux
Если ваша система не работает должным образом, например, если она необычно медленная, вы можете выполнить некоторые действия по устранению неполадок в системе следующим образом.
26. Найдите самые загруженные процессы по использованию памяти и процессора в Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head OR $ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

27. Чтобы завершить процессы Linux/нереагирующие приложения или любой процесс, потребляющий много времени процессора.
Сначала найдите PID нереагирующего процесса или приложения.
$ ps -A | grep -i stress
Затем используйте команду kill, чтобы немедленно завершить его.
$ kill -9 2583 2584

Печать информации о безопасности
28. Показать контекст безопасности (в частности для SELinux) таким образом.
$ ps -eM OR $ ps --context

29. Вы также можете отображать информацию о безопасности в формате, определенном пользователем, с помощью этой команды.
$ ps -eo euser,ruser,suser,fuser,f,comm,label

Выполнение мониторинга процессов в реальном времени с использованием утилиты Watch
30. Наконец, поскольку ps отображает статическую информацию, вы можете использовать утилиту watch для выполнения мониторинга процессов в реальном времени с повторяющимся выводом, отображаемым каждую секунду, как в команде ниже (указывайте пользовательскую команду ps для достижения вашей цели).
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'

Важно: ps показывает только статическую информацию, для просмотра часто обновляемого вывода вы можете использовать инструменты, такие как htop; top и glances: последние два, на самом деле, являются инструментами мониторинга производительности системы Linux.
Вам также может понравиться прочитать следующие связанные статьи.
- Как найти имя процесса по номеру PID в Linux
- Найти Топ Запущенных Процессов по Высшему Использованию Памяти и ЦП в Linux
- A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
- Как Найти и Завершить Запущенные Процессы в Linux
- Как Запустить Команду Linux в Фоновом Режиме и Отсоединить Процесс в Терминале
Вот и все на данный момент. Если у вас есть какие-либо полезные примеры команды ps для обмена (не забывайте объяснить, что она делает), используйте форму комментариев ниже.
Source:
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/