Для просмотра перечня процессов Linux принято использовать различные программы.
ps (process status) - одна из самых распространенных утилит, применяемых в работе для этих целей. Данный инструмент достаточно прост и понятен, однако он не поддерживает интерактивный режим. Популярность ps скорее связана с обилием доступных опций, при помощи которых можно вносить необходимые коррективы в процессы Линукс.
В данном материале мы разберем, как пользоваться утилитой ps и как применять опции (ключи) на практике.
Содержание
Процессы что это
Для начала стоит затронуть азы и понять, что собой представляет процесс в операционной системе.
Под процессом (processus) понимается экземпляр запущенный программы, который может находится в разных состояниях: одни активно исполняются, какие-то могли стать зомби, так как не был сделан wait, какие-то могут ожидать выполнения долгой задачи дочернего процесса. Более подробно про зомби, написано в статье зомби процессы это
Основные состояния:
- D - uninterruptible sleep (непрерываемый сон, обычно во время IO операций);
- R - running и runnable (исполняется или ожидает исполнения);
- S - interruptible sleep (обычный спящий процесс, который может быть прерван, ожидает какого-то события);
- T - остановлен сигналом управления задачами;
- Z - упомянутый ранее зомби-процесс.
Так как Linux является многопользовательской системой, её программы могут быть запущены от лица различных пользователей. При этом ядру необходимо понимать, кто выполняет текущие действия и как-то различать юзеров. В связи с этим разработчики создали идентификатор PID, который присваивается каждому процессу в Линукс.
Синтаксис
Рассмотрим синтаксис process status.
$ ps опции
$ ps опции | grep параметр
Опции утилиты :
- Чтобы выбрать все процессы, используется -A, -е, (а).
- Чтобы выбрать все процессы за исключением фоновых, используется -a.
- Чтобы выбрать все процессы, в числе которых есть даже фоновые, но отсутствуют процессы сессий, используется -d, (g).
- Чтобы выбрать все процессы, кроме указанных, используется -N.
- Чтобы выбрать все процессы по имени команды, используется -C.
Чтобы выбрать процессы по:
- ID группы: -G.
- PID: -p (p).
- PID родительского процесса: --ppid.
- ID сессии: -s.
- TTY: -t (t).
Для того, чтобы выбрать processus определенного пользователя операционной системы Linux, применяется опция -u (U).
Примеры
Наиболее часто утилита используется с 3 ключами:
- a – убирает ограничение о собственных процессах;
- u – добавляет расширенный набор часто нужных колонок;
- x – убирает ограничение о процессах, запущенных из текущего терминала.
Чтобы посмотреть список процессов Линукс для текущей оболочки, необходимо задать команду без добавления каких-либо аргументов. Это должно выглядеть следующим образом:
$ ps
Чтобы увидеть все активные процессы, выведенные на экран в общем формате системы, следует задать:
$ ps -A
Альтернативный вариант команды для ввода в строке терминала:
$ ps -e
Для отображения процессов в формате BSD потребуется выполнить действие:
$ ps au
Полноформатный листинг задается так:
$ ps -eF
Пользовательские процессы выводятся на экран немного по-другому. Чтобы посмотреть все процессы, принадлежащие себе, необходимо ввести:
$ ps -x
Далее приведем пример вывода информации относительно процессов другого пользователя. В этом случае нужно воспользоваться его идентификатором. Что вводить в терминале:
$ ps -fU user
Разумеется, указанное имя пользователя «user» необходимо заменить актуальным. Также не стоит забывать о важности добавления флага -U. Внимательно повторите структуру данной команды.
В операционной системе Линукс выполняются процессы с правами пользователя root. Чтобы получить доступ к каждому из них, необходимо задать:
$ ps -U root -u root
При необходимости ознакомления со списком процессов, которые принадлежат какой-либо группе, необходимо добавить к команде её наименование.
Например:
$ ps -fG 65
Вместо наименования «65» введите актуальные данные.
Дерево процессов
С его помощью можно узнать, какие процессы в системе Линукс связаны друг с другом. Если информация подобного рода актуальна, пользователю достаточно ввести:
$ ps -e --forest
Как вывести поток процессов
Все потоки можно посмотреть при помощи команды данного вида:
$ ps -fL -C sshd
Зная PID процесса, можно найти его наименование. Это легко сделать, если ввести:
$ ps -p 1334 -o comm=
Благодаря использованию флага –C можно отобразить на экране сразу два типа процессов: родительский и дочерний. На практике это выполняется так:
$ ps -C systemd
Если пользователю понадобится информация о безопасности процессов, необходимо воспользоваться командой следующего вида:
$ ps -eM
Альтернативная вариация команды:
$ ps --context
ВАЖНО! Утилита ps является «родным» инструментом в Ubuntu. С её помощью можно увидеть только статическую информацию о процессах, происходящих в операционной системе. Зачастую этого достаточно для работы. Но если потребуются данные относительно обновляемого вывода, будет целесообразнее воспользоваться другими инструментами мониторинга.
Например:
- top
- htop
- glances
Заключение
Программа ps пользуется большой популярностью у владельцев дистрибутивов Linux. Её неоспоримое преимущество перед конкурентами – обилие опций, с помощью которых легко получить информацию относительно списка текущих активных и мёртвых процессов в системе.