Здесь будет рассмотрена утилита ps, с помощью которой мы можем изучать работающие процессы в системе Linux.
Оглавление скрыть
Утилита ps
Утилита ps показывает срез информации на данный момент времени. То есть некоторые свойства процесса могут изменяться со временем. Например, используемая оперативная память может вырасти или уменьшится. А команда ps покажет занимаемую память процессом в данный момент.
Вы можете почитать официальный мануал по команде ps здесь, или выполните команду man ps .
Просмотр общего списка процессов
Если вызвать ps без аргументов то увидим процессы своего пользователя привязанные к текущему терминалу (TTY):
Чтобы посмотреть все процессы в системе используют опции ax, я добавил head чтобы вывести первые 10 процессов, так как их много:
Давайте разберемся с этими опциями:
- a — показать все процессы у которых есть управляющий терминал;
- x — показать все процессы у которых нет управляющего терминала.
Также чтобы вывести все процессы можно воспользоваться опцией -e, при этом вы не увидите состояния процессов:
Linux для Начинающих — Процессы и Память: top, free, ps
Чтобы увидеть больше информации воспользуемся опцией u:
Так как я показываю первые 10 процессов, а они отсортированы по pid, то сюда попали только процессы ядра, которые не имеют управляющего терминала.
Просмотр информации о конкретных процессах
Использование команды PS в Linux
PS (process state) — стандартная утилита всех дистрибутивов Linux, используемая через консоль. Ее основное предназначение — отображение информации обо всех запущенных процессах. Количество и детально показываемых сведений зависит от установленных опций, которые выбираются при непосредственной активации самой команды. Об опциях мы поговорим немного позже, а сейчас давайте просто введем ps в «Терминале» и нажмем на Enter.
Как видно на скриншоте ниже, отобразилось всего строки, среди которых находится оболочка bash и сам процесс рассматриваемой команды.
Конечно, здесь может быть еще несколько пунктов, что зависит от количества запущенных пользовательских программ, однако в большинстве случаев пользователей такой вывод не устраивает, поэтому мы и предлагаем перейти к изучению дополнительных опций.
Вывод списка всех процессов
Утилита PS без указания специальных опций не позволяет получить полезную информацию, которая может пригодиться во время изучения списка активных процессов, поэтому и важно применять аргументы. Первый из них отвечает за отображение абсолютно всех текущих задач, а строка принимает вид ps -A .
Linux для начинающих | Терминал Linux | Основные команды
В итоге отобразится огромное количество строк, с которыми следует разобраться. Делятся сведения на несколько столбцов. 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 , чтобы получить те подсказки, которые вы не нашли выше. Дополнительно на нашем сайте имеются развернутые описания основных команд рассмотренной операционной системы. Рекомендуем начинающим пользователям изучить их, чтобы быстрее освоиться в управлении консолью Линукс.
Источник: lumpics.ru
Утилита PS в Linux для вывода процессов на экран
Серверы с предустановленной ОС семейства Linux идут без графического интерфейса. Для работы и настройки используют терминал. Расскажем про одну из утилит, которая отвечает за просмотр процессов. В качестве примера рассмотрим Ubuntu Server 18.04.
Что такое PS
Системная утилита PS отвечает за отображение процессов на экране пользователя. Совместно с ней используются команды more, less и grep для фильтрации.
PS доступна в любом дистрибутиве серверной ОС Linux. Запускается через команду PS:
Скриншот №1. Утилита PS.
Где первый столбец означает идентификатор процесса (PID), второй – его наименование. Третий отображает процессорное время, затраченное сервисом, а четвертый – приложение, которое его запустило.
Синтаксис PS
Команда работает со следующими дополнительными ключами.
Ключ –e (-A). Выводит на экран перечень всех процессов, которые запущены на сервере.
Опция –d покажет системному администратору все процессы, за исключением так называемых «лидеров». Лидерство – это когда один процесс запускает другие. При запуске процесса с данным ключом пользователь не увидит первый сервис, но ему покажут зависимые от него.
Ключ –N меняет значения опции с точностью до наоборот. Возьмем для примера предыдущий пункт. Если необходимо увидеть только лидеров, то после ключа D вводим N.
Для отображения сервисов, которые запущены в текущей терминальной сессии, используем букву T, а для просмотра только работающих в данный момент – r.
Сортировка
Рассмотрим возможности утилиты PS как фильтра. Если требуется отобразить информацию о конкретном сервисе, то указываем его идентификатор (PID).
Важно! Если требуется показать несколько процессов, то указываем PID каждого через запятую.
Администраторы не запоминают идентификаторы каждого процесса, но помнят наименования. Соответственно, для поиска конкретного сервиса указываем имя через специальный ключ.
Другой способ сортировка – использовать имя группы. Для этого используется ключ –G или –Group.
ps —Group users
Альтернативный вариант: совместить поиск по идентификатору группы. За это отвечает опция –g либо –group.
Важно! Ключи –G и –g отличаются только написанием: заглавная и прописная, но они выполняют разные функции.
Чтобы просмотреть перечень процессов, которые запустил конкретный пользователь, используем функцию –U.
ps –U name_user
, где user_name – учетное имя, для которого проводится выборка.
Важно! Если требуется отображать процессы, которые запустил пользователь, то берем его имя в прямые кавычки.
Дополнительные возможности
Как было показано выше, PS по умолчанию выводит краткую информацию о процессах. Чтобы получить подобное описание, используем ключ –eF.
Добавится информация о размере, который забирает сервис из оперативной памяти, временной интервал работы, идентификатор учетного имени, под которым запущен процесс и другие данные.
Чтобы финализировать информацию используют ключ –sort совместно с дополнительными опциями, которые проводят сортировку по значениям, например, %mem, cp, comm и др.
ps –eF —sort
, где option – один из многочисленных ключей.
Подробная информация доступна в справочной службе команды PS.
Ключи less и more регулируют размеры страницы в терминале, т.е. позволяет смотреть под одной странице за каждое нажатие клавиши.
Команда grep отбирает данные, которые содержат определенное слово, например:
Ps –eF | grep nginx
После запуска команды в окне терминала отобразится информация о всех строках, содержащих слово nginx.
Источник: serverspace.ru