Использование команды PS в Linux

PS (process state) — стандартная утилита всех дистрибутивов Linux, используемая через консоль. Ее основное предназначение — отображение информации обо всех запущенных процессах. Количество и детально показываемых сведений зависит от установленных опций, которые выбираются при непосредственной активации самой команды. Об опциях мы поговорим немного позже, а сейчас давайте просто введем ps в «Терминале» и нажмем на Enter.

Как видно на скриншоте ниже, отобразилось всего строки, среди которых находится оболочка bash и сам процесс рассматриваемой команды.

Конечно, здесь может быть еще несколько пунктов, что зависит от количества запущенных пользовательских программ, однако в большинстве случаев пользователей такой вывод не устраивает, поэтому мы и предлагаем перейти к изучению дополнительных опций.
Вывод списка всех процессов
Утилита PS без указания специальных опций не позволяет получить полезную информацию, которая может пригодиться во время изучения списка активных процессов, поэтому и важно применять аргументы. Первый из них отвечает за отображение абсолютно всех текущих задач, а строка принимает вид ps -A .

В итоге отобразится огромное количество строк, с которыми следует разобраться. Делятся сведения на несколько столбцов. PID отображает идентификационный номер процесса и может использоваться, например, для быстрого завершения работы этой программы или проверки дерева задач. TTY — имя терминала, где запущен текущий процесс. TIME — время работы, а CMD — название команды задачи.

Дополнительно можно использовать команду ps -e , чтобы отобразить список всех процессов, если предыдущий вариант вас не устраивает.

Как видно, выдача после активации опции -e получилась точно такая же, как и при вводе аргумента -A.


Существует формат вывода BSD, отвечающий за отображение связанных с пользователями процессов, а также отображает более детальные сведения о работе задач, нагрузке их на процессор и точное расположение. Для получения таких сведений следует использовать ps au .

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

Полноформатный листинг
Рассмотренные выше примеры позволяли отобразить практически все необходимые сведения, которые могут быть полезны начинающим пользователям. Однако иногда требуется получить более детальный листинг, например, чтобы определить источник вызова процесса. Тогда на помощь придет строка такого вида: ps -ef .

Отобразятся практически те же столбцы, о которых мы уже говорили ранее, но дополнительно появится детальная развертка о расположении и первый же пункт будет отвечать за источник вызова задачи.

Отображение пользовательских процессов
Опция -x отвечает за отображение процессов, которые были отсоединены от терминала, то есть запущены лично пользователем. Если вы хотите узнать, какие именно задачи были открыты от имени текущей учетной записи, в консоли достаточно будет ввести строку ps -x и нажать на Enter.

Вывод будет максимально информативный, но без дополнительных сведений. Однако ничего не помешает задействовать и дополнительные опции, например, -eM для показа контекста безопасности.

Если же требуется получить информацию о данных другого пользователя, измените строку на ps -fU lumpics , где lumpics замените на необходимое имя.

В результатах вывода обратите внимание на первый столбец. Вы не найдете там других владельцев кроме указанного в команде до ее активации.

Фильтр по root
В каждом сеансе Linux имеется отдельный список задач, выполняемых с правами root. Если требуется отобразить только такие процессы, следует задать команду ps -U root -u root и активировать ее нажатием на клавишу Enter.

При использовании команды в точности повторяющей ту, что выше, вывод не будет содержать строки с источником запуска, поскольку заранее известно, что это root, а все сведения показываются в максимально сжатом пользовательском виде. Здесь мы предлагаем задействовать упомянутые выше аргументы, чтобы расширить информацию.

Отображение групповых задач
Опытные пользователи знают, что некоторые процессы принадлежат к конкретной группе, то есть имеется главная задача и ее зависимости, формирующие общее древо. При необходимости отображения только строк, попадающих под данный критерий, задействуйте команду ps -fG 48 , где 48 — идентификатор группы (его можно заменить на название родительского процесса).

Отображение по PID
Из приведенных выше сведений вы уже знаете, что каждый процесс имеет свой PID, то есть определяющий его идентификатор. Если имеется желание выполнить поиск по конкретным PID, следует задействовать команду ps -fp 1178 , заменив число на требуемое. Имеется и критерий PPID. При определении такого формата строка обретает вид ps -f —ppid 1154 , с соответствующим изменением идентификатора на нужный.

Это были все основные примеры команды PS в Linux, о которых мы хотели поговорить в рамках сегодняшней статьи. К сожалению, объема одного руководства не хватит для того, чтобы детально описать взаимодействие со всеми доступными опциями и их комбинациями. Вместо этого мы предлагаем изучить официальную документацию команды, выполнив ps —help , чтобы получить те подсказки, которые вы не нашли выше. Дополнительно на нашем сайте имеются развернутые описания основных команд рассмотренной операционной системы. Рекомендуем начинающим пользователям изучить их, чтобы быстрее освоиться в управлении консолью Линукс.
30 полезных примеров команд ps для мониторинга процессов Linux
ps (статус процессов) — это встроенная утилита Unix/Linux для просмотра информации, касающейся выбора запущенных процессов в системе: она считывает эту информацию из виртуальных файлов в файловой системе/proc. Это одна из важных утилит для системного администрирования, особенно при мониторинге процессов, чтобы помочь вам понять, что происходит в системе Linux.
У него есть множество опций для управления его выводом, однако вы найдете небольшое количество из них практически полезными для повседневного использования.
В этой статье мы рассмотрим 30 полезных примеров команд ps для мониторинга активных запущенных процессов в системе Linux.
Обратите внимание, что ps производит вывод со строкой заголовка, которая представляет значение каждого столбца информации, вы можете найти значение всех меток на странице руководства ps.
Список всех процессов в текущей оболочке
1. Если вы запустите команду ps без аргументов, она отобразит процессы для текущей оболочки.

Распечатать все процессы в разных форматах
2. Отобразите каждый активный процесс в системе Linux в общем формате (Unix/Linux).

3. Отобразите все процессы в формате BSD.

4. Чтобы выполнить полноформатный листинг, добавьте флаг -f или -F .

Отображение запущенных пользователем процессов
5. Вы можете выбрать все процессы, принадлежащие вам (исполнитель команды ps, в данном случае root), введите:
6. Чтобы отображать процессы пользователя по реальному идентификатору пользователя (RUID) или имени, используйте флаг -U .

7. Чтобы выбрать процессы пользователя по эффективному идентификатору пользователя (EUID) или имени, используйте параметр -u .
Распечатать все процессы, запущенные как root (настоящий и эффективный ID)
8. Приведенная ниже команда позволяет вам просматривать каждый процесс, запущенный с привилегиями пользователя root (реальный и эффективный ID) в пользовательском формате.

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

10. Чтобы вывести список всех процессов, принадлежащих действующему имени группы (или сеансу), введите.
Отображение процессов по PID и PPID
11. Вы можете перечислить процессы по PID следующим образом.
12. Чтобы выбрать процесс по PPID, введите.

13. Сделайте выбор, используя список PID.

Отображение процессов по телетайпу
14. Чтобы выбрать процессы по tty, используйте флаг -t следующим образом.

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

16. Вы также можете напечатать дерево процессов для данного процесса, как это.

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

Укажите собственный формат вывода
Используя параметры -o или –format, ps позволяет создавать определяемые пользователем выходные форматы, как показано ниже.
18. Чтобы перечислить все спецификаторы формата, включите флаг L .
19. Приведенная ниже команда позволяет вам просматривать PID, PPID, имя пользователя и команду процесса.

20. Ниже приведен еще один пример настраиваемого формата вывода, показывающий группу файловой системы, значение nice, время начала и прошедшее время процесса.
21. Найти имя процесса по его PID.

Показать родительские и дочерние процессы
22. Чтобы выбрать конкретный процесс по его имени, используйте флаг -C, это также отобразит все его дочерние процессы.

23. Найдите все PID всех экземпляров процесса, что полезно при написании сценариев, которым необходимо читать PID из выходных данных std или файла.

24. Проверить время выполнения процесса.
Приведенные ниже выходные данные показывают, что служба HTTPD работает в течение 1 часа 48 минут и 17 секунд.

Устранение неполадок производительности системы Linux
Если ваша система не работает должным образом, например, если она необычно медленная, вы можете выполнить некоторые действия по устранению неполадок в системе следующим образом.
26. Найдите самые запущенные процессы по максимальной загрузке памяти и ЦП в Linux.

27. Чтобы убить процессы Linux/неотвечающие приложения или любой процесс, который потребляет много процессорного времени.
Сначала найдите PID не отвечающего процесса или приложения.
Затем используйте команду kill, чтобы немедленно завершить его.

Распечатать информацию о безопасности
28. Покажите контекст безопасности (специально для SELinux) следующим образом.

29. С помощью этой команды вы также можете отобразить информацию о безопасности в определяемом пользователем формате.

Мониторинг процессов в реальном времени с помощью Watch Utility
30. Наконец, поскольку ps отображает статическую информацию, вы можете использовать служебную программу watch для выполнения мониторинга процесса в реальном времени с повторяющимся выводом, отображаемым через каждую секунду, как в приведенной ниже команде (укажите настраиваемую команду ps для достижения вашей цели).

Важно: ps показывает только статическую информацию, для просмотра часто обновляемого вывода вы можете использовать такие инструменты, как взгляды: последние два фактически являются инструментами мониторинга производительности системы Linux.
Вы также можете прочитать следующие статьи по теме.
- Как найти имя процесса по номеру PID в Linux
- Найдите самые популярные процессы по максимальной загрузке памяти и ЦП в Linux.
- Руководство по командам Kill, Pkill и Killall для завершения процесса в Linux
- Как найти и остановить запущенные процессы в Linux
- Как запустить команду Linux в фоновом режиме и отсоединить процесс в терминале
На этом пока все. Если у вас есть полезные примеры команд ps, которыми вы хотите поделиться (не забудьте объяснить, что они делают), используйте форму комментария ниже.
Команда Ps в Linux (список процессов)
В Linux запущенный экземпляр программы называется процессом. Иногда при работе на машине Linux вам может потребоваться выяснить, какие процессы выполняются в данный момент.
Существует ряд команд, которые вы можете использовать для поиска информации о запущенных процессах, из которых наиболее часто используются ps , pstree и top .
В этой статье объясняется, как использовать команду ps для вывода списка запущенных в данный момент процессов и отображения информации об этих процессах.
Как использовать команду ps
Общий синтаксис команды ps следующий:
По историческим причинам и из соображений совместимости команда ps принимает несколько различных типов параметров:
- Параметры стиля UNIX, которым предшествует одиночный дефис.
- Параметры стиля BSD, используемые без тире.
- Параметры GNU с двумя дефисами перед ними.
Можно смешивать разные типы опций, но в некоторых конкретных случаях могут возникать конфликты, поэтому лучше придерживаться одного типа опций.
Опции BSD и UNIX можно сгруппировать.
В простейшей форме, при использовании без какой-либо опции, ps напечатает четыре столбца информации как минимум для двух процессов, запущенных в текущей оболочке, самой оболочки и процессов, запущенных в оболочке при вызове команды.
Вывод включает информацию о оболочке ( bash ) и процессе, запущенном в этой оболочке ( ps , команда, которую вы ввели):
Четыре столбца помечены как PID , TTY , TIME и CMD .
- PID — идентификатор процесса. Обычно при запуске команды ps наиболее важной информацией, которую ищет пользователь, является PID процесса. Знание PID позволяет устранить неисправный процесс .
- TTY — имя управляющего терминала для процесса.
- TIME — совокупное время ЦП процесса в минутах и секундах.
- CMD — имя команды, которая использовалась для запуска процесса.
Приведенный выше вывод не очень полезен, поскольку не содержит много информации. Настоящая мощь команды ps проявляется при запуске с дополнительными параметрами.
Команда ps принимает огромное количество параметров, которые можно использовать для отображения определенной группы процессов и различной информации о процессе, но при повседневном использовании требуется лишь несколько.
ps чаще всего используется со следующей комбинацией параметров:
Форма BSD :
- Параметр a указывает ps отображать процессы всех пользователей. Не отображаются только процессы, не связанные с терминалом, и процессы руководителей групп.
- u обозначает ориентированный на пользователя формат, который предоставляет подробную информацию о процессах.
- Параметр x указывает ps перечислить процессы без управляющего терминала. В основном это процессы, которые запускаются во время загрузки и работают в фоновом режиме .
Команда отображает информацию в одиннадцати столбцах, обозначенных USER , PID , %CPU , %MEM , VSZ , RSS , STAT , START , TTY , TIME и CMD .
Мы уже объяснили метки PID , TTY , TIME и CMD . Вот объяснение других этикеток:
- USER — пользователь, запускающий процесс.
- %CPU — загрузка процессора процессом.
- %MEM — процентное отношение размера резидентного набора процесса к физической памяти на машине.
- VSZ — размер виртуальной памяти процесса в КиБ.
- RSS — размер физической памяти, которую использует процесс.
- STAT — код состояния процесса, например Z (зомби), S (спящий) и R (запущенный).
- START — время начала команды.
Параметр f указывает ps отображать древовидное представление родительских и дочерних процессов:
Команда ps также позволяет сортировать вывод. Например, чтобы отсортировать вывод на основе использования памяти , вы должны использовать:
Форма UNIX :
- Параметр -e указывает ps отображать все процессы.
- -f обозначает полноформатный список, который предоставляет подробную информацию о процессах.
Команда отображает информацию в восьми столбцах, обозначенных UID , PID , PPID , C , STIME , TIME и CMD .
Метки, которые еще не объяснены, имеют следующее значение:
- UID — то же самое, что и USER , пользователь, запускающий процесс.
- PPID — идентификатор родительского процесса.
- C — То же, что и %CPU , загрузка процессора процессом.
- STIME — то же самое, что и START , время начала команды.
Чтобы просмотреть только процессы, запущенные от имени конкретного пользователя, введите следующую команду, где linuxize — это имя пользователя:
Пользовательский формат
Параметр o позволяет указать, какие столбцы будут отображаться при запуске команды ps .
Например, чтобы распечатать информацию только о PID и COMMAND , вы должны выполнить одну из следующих команд:
Использование ps с другими командами
ps можно использовать в сочетании с другими командами через конвейер.
Если вы хотите отобразить вывод команды ps , по одной странице за раз передайте его команде less :
Вывод команды ps можно отфильтровать с помощью grep . Например, чтобы показать только процесс, принадлежащий пользователю root, вы должны запустить:
Выводы
Команда ps — одна из наиболее часто используемых команд при устранении неполадок в системах Linux. У него много опций, но обычно большинство пользователей используют ps aux или ps -ef для сбора информации о запущенных процессах.
Чтобы получить дополнительную информацию о ps , введите в терминале man ps .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Как использовать команду ps в Linux: руководство для начинающих
В пс команда по умолчанию командная строка утилита, которая может дать нам представление о процессах, которые в настоящее время выполняются на Система Linux . Он может дать нам много полезной информации об этих процессах, включая их PID (идентификатор процесса), TTY, пользователя, выполняющего команду или приложение, и многое другое.
Хотя это звучит довольно просто, не заблуждайтесь, пс команда может быть довольно сложной. Он принимает множество различных вариантов и может быть полезен в невероятном количестве ситуаций, даже как часть bash скрипт .
В этом руководстве мы познакомим вас с пс command и просмотрите все ее наиболее полезные параметры, включая множество примеров. К концу чтения этого руководства вы будете вооружены всей необходимой информацией, чтобы максимально эффективно использовать этот полезный инструмент командной строки.
В этом уроке вы узнаете:
- Как перечислить все процессы, запущенные в системе
- Как пользоваться пс команда через примеры

Использование команды ps для определения запущенных процессов в системе Linux
| Категория | Требования, условные обозначения или используемая версия программного обеспечения |
|---|---|
| Система | Любой Дистрибутив Linux |
| Программного обеспечения | пс |
| Другой | Привилегированный доступ к вашей системе Linux с правами root или через судо команда. |
| Условные обозначения | # — требует данных команды linux для выполнения с привилегиями root либо непосредственно как пользователь root, либо с использованием судо команда $ — требует данных команды linux для выполнения от имени обычного непривилегированного пользователя. |
Как перечислить все процессы, запущенные в системе
В пс Команда может немного сбить с толку новичков, потому что она принимает параметры в нескольких различных синтаксисах. Это очень старая команда, которая с начала 70-х годов нашла свое применение во всех (или почти во всех) системах UNIX, BSD и Linux. Таким образом, текущая итерация была адаптирована для принятия синтаксисов из UNIX (параметры с дефисом перед ним), BSD (параметры без тире) и GNU (варианты с двумя дефисами перед ним).
Легче всего узнать о пс команда через примеры. Для начала используйте некоторые из следующих команд в своей собственной системе, и со временем вы освоите ее.
Следующая команда покажет все запущенные процессы в системе и, вероятно, является наиболее часто используемой. пс команда в целом. Если после прочтения этого руководства вы вспомнили только одно, то это должна быть эта команда.
Обратите внимание, что здесь используется синтаксис BSD (без тире). Использование одних и тех же параметров в другом синтаксисе может привести к другому результату, поэтому да, синтаксис имеет значение. Вот что делают эти варианты:
- а — показать процессы от всех пользователей.
- ты — отображать ориентированный на пользователя формат (отображает дополнительную информацию о запущенных процессах).
- Икс — перечислить процессы, не принадлежащие ни одному tty.
Это, вероятно, приведет к большому объему вывода в вашем терминале. Даже в недавно установленных системах обычно довольно много процессов выполняется в фоновом режиме, и пс идентифицирует каждого. Попробуйте передать команду по конвейеру меньше или более чтобы сделать вывод более управляемым.

Вывод команды ps aux
Как видите, в нашем выводе довольно много столбцов, и некоторые из них могут показаться непонятными для новичков. Давайте рассмотрим, что каждый из них означает:
- ПОЛЬЗОВАТЕЛЬ — Пользователь, под которым запущен процесс.
- PID — Идентификатор процесса (каждому процессу присваивается номер в качестве идентификатора).
- %ЦПУ — Сколько процентов процессора использует процесс.
- % MEM — Сколько процентов ОЗУ использует процесс.
- VSZ — Размер виртуальной памяти процесса.
- RSS — Размер физической памяти, которую использует процесс.
- Телетайп — К какому TTY (экрану терминала) привязан процесс, или ? ни для кого.
- СТАТИСТИКА — Государственный код процесса; их много, но некоторые общие S (спит) и р (Бег).
- НАЧАЛО — Время, когда процесс начался.
- ВРЕМЯ — Суммарное процессорное время, использованное процессом.
- КОМАНДА — Полная команда, которая использовалась для запуска запущенного процесса.
Как использовать команду ps на примерах
Теперь, когда вы сориентировались пс command, давайте рассмотрим еще несколько полезных и распространенных примеров.
Следующий синтаксис UNIX часто используется вместо синтаксиса BSD, который мы показали выше. Он более лаконичен, упрощает просмотр с первого взгляда, но не такой подробный, как ps aux .
- -e — отображать запущенные процессы от всех пользователей.
- -f — отображать полноформатный листинг (отображает дополнительную информацию о запущенных процессах).

Вывод команды ps -ef
Наши столбцы немного изменились, но в основном они означают то же, что и в синтаксисе BSD. Вот краткое изложение новых:
- UID — Идентификатор пользователя, такой же, как ПОЛЬЗОВАТЕЛЬ в синтаксисе BSD.
- PPID — Идентификатор родительского процесса.
- C — Загрузка процессора, такая же, как %ЦПУ в синтаксисе BSD.
- STIME — Время начала, такое же, как НАЧАЛО в синтаксисе BSD.
Если вам не нужна такая подробная информация, просто воспользуйтесь -e вариант. В топор варианты выполнят то же самое.
Одна из лучших особенностей пс заключается в том, что вы можете сортировать по любому столбцу, который хотите. Например, чтобы отсортировать процессы по объему используемой памяти:

Сортировка вывода ps по использованию памяти
Или сортировать по Загрузка ЦП :
Если вы ищете конкретный процесс, лучше всего труба к grep . Это особенно полезно, если вам нужно быстро определить, запущен процесс или нет, или вам нужен идентификатор процесса.
В о вариант в BSD и -о в UNIX позволяет нам указать, какие столбцы мы хотим видеть. Это делает пс вывод очень настраиваемый, перечисляя только ту информацию, которую мы считаем актуальной. Все, что вам нужно сделать, это перечислить каждый столбец, который вы хотите, через запятую.

Изоляция столбцов в синтаксисе BSD
Вот еще один пример, но с использованием синтаксиса UNIX и с сортировкой вывода по загрузке ЦП.

Изоляция столбцов и сортировка результатов по загрузке ЦП в синтаксисе UNIX
Заключительные мысли
В этом руководстве мы увидели, как использовать пс в Linux для вывода списка запущенных процессов в системе. Мы также изучили различные примеры командной строки, которые позволяют нам изолировать нужную нам информацию.
Самый важный вывод из этого руководства — ps aux команда. С помощью этой команды вы всегда можете увидеть каждый процесс, запущенный в вашей системе, и определить всю необходимую информацию. Трубопровод к grep делает команду еще более мощной. Для более детального контроля вы всегда можете обратиться к нашему руководству или ps страница руководства .
Подпишитесь на новостную рассылку Linux Career Newsletter, чтобы получать последние новости, вакансии, советы по карьере и рекомендуемые руководства по настройке.
LinuxConfig ищет технических писателей, специализирующихся на технологиях GNU / Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU / Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU / Linux.
Ожидается, что при написании статей вы сможете идти в ногу с технологическим прогрессом в вышеупомянутой технической области. Вы будете работать самостоятельно и сможете выпускать как минимум 2 технических статьи в месяц.
- 09/08/2021
- 0
- НовичокАдминистрацияКоманды

Как пересобрать пакет с помощью системы сборки Arch Linux
- 08/08/2021
- 0
- МонтажАдминистрацияКомандыРазработка
В АБС или Система сборки Arch — это система сборки пакетов, встроенная в дистрибутив Arch Linux: с ее помощью мы можем легко создавать пакеты, которые можно установить с помощью Пакман, менеджер пакетов распространения, начиная с исходного кода. В.

Как проверить версию ядра в Linux
- 08/08/2021
- 0
- ЯдроАдминистрацияКомандыРазработка
Каждый Система Linux работает под управлением ядра Linux, которое служит основой для полностью упакованной операционной системы. По мере развития технологий ядро Linux получает обновления для размещения нового оборудования, функций и исправлений.

Как вывести и удалить репозиторий PPA в Ubuntu 20.04 Linux
- 08/08/2021
- 0
- UbuntuUbuntu 20.04АдминистрацияКоманды
Как вы, наверное, знаете, тонны программное обеспечение можно установить в Ubuntu 20.04 прямо из командная строка через подходящий или из приложения Ubuntu Software на Рабочий стол Ubuntu. Это работает так: Ubuntu будет запрашивать репозиторий, со.