Найти тему

Linux. Контроль процессов. Команда ps.

Одним из основных инструментов, которым часто пользуются системные администраторы - это команда ps. С помощью этой команды можно получить большое количество информации о процессах. Это информация об идентификаторах PID, UID. приоритете процессов, какой объем памяти выделен под этот процесс, сколько времени процесс занимал центральный процессор, ну и его общее состояние (простаивает, выполняется, остановлен и т.д.).

Команда ps поддерживает много параметров запуска, но в основном для работы понадобится только несколько из них. В отличии от некоторых других функций, команда ps воспринимает параметры как с дефисом, так и без. Но надо учитывать, что в некоторых случаях, результаты могут отличаться. Например, ps -a и ps a выдадут разный результат.

Итак, давайте посмотрим, что же эта команда выводит. Получить список всех процессов, выполняющихся в системе, можно с помощью команды

$ps aux

Ключ а означает, что мы хотим увидеть все процессы, ключ x - что мы хотим увидеть даже процессы, отсоединенные от управляющего терминала, а ключ u обеспечивает фильтрование по имени пользователя. Вывод выглядит, примерно так

-2

Обратите внимание, некоторые команды заключены в квадратные скобки. На самом деле они являются не совсем командами, это потоки ядра, запланированные в качестве процессов.

В результате работы команды ps aux мы получили следующие поля.

USER - здесь указано имя владельца процесса.

PID - это идентификатор процесса.

%CPU - доля времени центрального процесса выделенного процессу.

%MEM - процент реальной памяти, используемой процессом.

VSZ -виртуальный размер процесса.

RSS - это размер резидентного набора и используется, чтобы показать, сколько памяти выделено для этого процесса и находится в ОЗУ.

TTY - это идентификатор управляющего терминала.

STAT - Текущий статус процесса ( R - выполняется, D - ожидает записи на диск, S - неактивен (<20 с), T - приостановлен, Z - зомби) с дополнительными флагами (W - процесс выгружен на диск, < - процесс имеет повышенный приоритет, N - процесс имеет пониженный приоритет, L - некоторые процессы блокированы в ядре, s - процесс является лидером сеанса)

TIME - Количество времени центрального процесса, затраченное на выполнение процесса.

COMMAND - Имя и аргументы команды.

Еще одна полезная аббревиатура lax, ключ l значит, что надо вывести длинный формат. Такой командой удобнее пользоваться, когда система уже перегружена каким-то процессом. С таким ключом команда выполняется быстрее, чем с ключом aux, за счет того, что не сопоставляются идентификаторы процессов с именами пользователей.

-3

В выводе команды lax обратите внимание на поля PPID (идентификатор родительского процесса), NI (фактор уступчивости) и WCHAN (ресурс, которого ожидает процесс).

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

-4

Кстати, можно заметить, что в вывод попала сама команда grep, так как она была активна во время запроса. Ее можно исключить из вывода с помощью команды grep -v

-5

Еще для определения PID процесса можно использовать команды pidof и pgrep.

-6

Заключение.

В этой статье познакомились с еще одним инструментом, который я использую практически каждый день. Команда ps делает, так сказать, моментальный снимок состояния системы. Полную картину происходящего, конечно это не дает, но иногда и это тоже очень полезно. А как отследить систему в реальном времени, рассмотрим в следующих статьях. Чтобы не пропустить, подписывайтесь здесь или в телеге.