Основные команды Linux: как работает ps

Скачать Основные команды Linux: как работает ps
Сейчас ищут:

Itnull

Команда форума
Администратор
Регистрация
22.05.13
Сообщения
24.511
Реакции
8.231
Веб-сайт
itnull.me
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #1
Команда ps (сокращение от Process Status) — это утилита командной строки, с помощью которой можно посмотреть информацию о запущенных процессах в системе Linux. Как вы уже знаете, Linux — это многозадачная и многопроцессорная система: то есть в ней несколько процессов могут выполняться одновременно, не влияя друг на друга. Команда ps выводит список текущих запущенных процессов, включая их PID и другие атрибуты. В этом гайде мы сосредоточимся на примерах работы команды ps. Она получает информацию о процессах из виртуальных файлов, расположенных в файловой системе /proc.


Команда ps без аргументов​


ps без аргументов выводит список запущенных процессов в текущем сеансе терминала:


Код:
ps


Получим следующий вывод:
ps-command.png



В выводе можно увидеть четыре столбца:


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

Вывод всех запущенных процессов в разных форматах​


Чтобы просмотреть все запущенные процессы, выполните команду ps с аргументом -A.
ps-A-command.png



Также можно выполнить команду ps -e:
ps-e-command.png



Связанные с терминалом процессы​


Для просмотра процессов, связанных с терминалом, выполните ps -T:
ps-T-command.png



Процессы, не связанные с терминалом​


Если нужно просмотреть все процессы, исключив связанные с терминалом и лидерами сессий, выполните команду ps -a. Лидер сессии — это процесс, который запускает другие процессы.


Пример вывода команды ps -a:
ps-a-view-processes-not-associated-with-shell.png



Просмотр всех текущих запущенных процессов​


Чтобы вывести все текущие процессы, выполните:


Код:
ps -ax


Получим следующий вывод:
ps-ax-command.png



Флаг -a обозначает все процессы, а -x — выводит все процессы, даже те, которые не связаны с текущим TTY.

Процессы в формате BSD​


Для вывода процессов в формате BSD выполните команду:


Код:
ps au


Или команду:


Код:
ps aux


Вывод будет следующим:
ps-aux.png



Полноформатный список​


Чтобы просмотреть список в полном формате, выполните команду:


Код:
ps -ef


Также можно выполнить команду:


Код:
ps -eF


Получим следующий вывод:
ps-ef-command.png



Фильтр по пользователю​


Вывести список процессов, связанных с конкретным пользователем, можно с помощью флага -u:


Код:
ps -u user


Например, выведем список всех процессов, связанных с пользователем jamie:


Код:
ps -u jamie


Пример вывода команды ps -u:
ps-u-username.png



Фильтр по потокам​


Если вам нужно узнать поток определенного процесса, добавьте флаг -L, за которым следует PID. Например, выведем поток для процесса с идентификатором 4264:


Код:
ps -L 4264


Вывод будет следующим:
ps-L-PID.png



Процессы пользователя root​


Иногда вам может понадобиться вывести все процессы, запущенные пользователем root. Для этого выполните команду:


Код:
ps -U root -u root


Вывод для команды ps -U будет следующим:
ps-U-root-u-root-command.png



Групповые процессы​


Если вы хотите вывести список всех процессов, связанных с определенной группой, выполните команду:


Код:
ps -fG group_name


Или выполните:


Код:
ps -fG groupID


Например, чтобы вывести список всех процессов, связанных с группой root, выполните следующую команду:


Код:
ps -fG root


Вывод будет следующим:
ps-fG-group_name.png



Поиск PID процесса​


Чтобы узнать уникальный идентификатор процесса, выполните команду:


Код:
ps -C process_name


Например, давайте узнаем PID процесса bash:


Код:
ps -C bash


Пример вывода команды ps -C bash:
ps-c-process.png



Список процессов по PID​


Вы можете вывести список процессов по их уникальному идентификатору:


Код:
ps -fp PID


Например, для вывода процесса с PID 1294 нужно выполнить команду:


Код:
ps -fp 1294


Вывод будет следующим:
ps-fp-PID.png



Вывод иерархии процессов на древовидной диаграмме​


Обычно большинство процессов создаются из родительских. Потому очень полезно понимать связи между родительскими и дочерними процессами. Команда ниже ищет процессы для процесса bash.


Код:
ps -f --forest -C bash


Вы получите следующий вывод:
ps-f-forest-C-bash.png



Вывод дочерних процессов​


Допустим, нам нужно вывести все процессы, созданные процессом bash. Для этого выполните команду:


Код:
ps -o pid,uname,comm -C bash


Вывод будет следующим:
ps-o-pidunamecomm-C-bash.png



Первый процесс, который принадлежит пользователю root, является основным процессом bash, а остальные были им порождены. Чтобы вывести все дочерние процессы с помощью PID основного процесса bash, выполните следующую команду:


Код:
ps --ppid PID no.


Давайте выведем дочерние процессы для процесса с PID 1294:


Код:
ps --ppid 1294


Получаем вывод:
ps-ppid-PID-no..png



Просмотр потоков процессов​


С помощью команды ps можно просмотреть потоки вместе с процессами. Ниже приведена команда, которая выводит все потоки процесса:


Код:
ps -p pid_no -L


Например, чтобы вывести все потоки, связанные с процессом с PID 1294, нужно выполнить команду:

Код:
ps -p 1294 -L


Пример вывода команды ps -p:
ps-p-pid_no-L.png



Вывод выбранных столбцов​


Для вывода только конкретных столбцов можно выполнить команду ps с опцией -o. Например:


Код:
ps -e -o pid,uname,pcpu,pmem,comm


Эта команда будет выводить только PID, имя пользователя, процессор, память и команду.
ps-e-o-pidunamepcpupmemcomm.png



Переименование заголовков столбцов​


Чтобы переименовать заголовки, выполните следующую команду:


Код:
ps -e -o pid=PID,uname=USERNAME,pcpu=CPU_USAGE,pmem=%MEM,comm=COMMAND


Вывод для команды ps -e -о будет следующим:
ps-e-o-pidunameUSERNAMEpcpuCPU_USAGE.png



Прошедшее время работы процессов​


Прошедшее время указывает, как долго процесс выполнялся:


Код:
ps -e -o pid,comm,etime


Опция -o включает столбец для прошедшего времени.

Команда ps с grep​

ps в комбинации с командой grep используется для поиска определенного процесса. Например, давайте найдем процесс systemmd:


Код:
ps -ef  | grep systemd
 
Назад
Сверху Снизу