Команда ps Linux

Команда ps Linux
На чтение
15 мин.
Просмотров
100
Дата обновления
05.11.2024

Для просмотра перечня процессов 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 параметр

Опции утилиты :

  1. Чтобы выбрать все процессы, используется -A, -е, (а).
  2. Чтобы выбрать все процессы за исключением фоновых, используется -a.
  3. Чтобы выбрать все процессы, в числе которых есть даже фоновые, но отсутствуют процессы сессий, используется -d, (g).
  4. Чтобы выбрать все процессы, кроме указанных, используется -N.
  5. Чтобы выбрать все процессы по имени команды, используется -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. Её неоспоримое преимущество перед конкурентами – обилие опций, с помощью которых легко получить информацию относительно списка текущих активных и мёртвых процессов в системе.

0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий