Команда Pstree в Linux

Команда Linux Ps

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

В этой статье мы поговорим о команде pstree . Она похожа на ps , но вместо списка запущенных процессов отображает их в виде дерева. Древовидный формат — более удобный способ отображения иерархии процессов и делает вывод более наглядным.

Как использовать команду pstree

Общий синтаксис команды pstree следующий:

 ps [ OPTIONS ] [ USER or PID ]

В простейшей форме, при вызове без каких-либо опций или аргументов, pstree отображает иерархическую древовидную структуру всех запущенных процессов:

 pstree
 systemd─┬─VBoxService───7*[{VBoxService}] ├─accounts-daemon───2*[{accounts-daemon}] ├─2*[agetty] ├─atd ├─cron ├─dbus-daemon ├─irqbalance───{irqbalance} ├─2*[iscsid] ├─lvmetad ├─lxcfs───2*[{lxcfs}] ├─networkd-dispat───{networkd-dispat} ├─nginx───2*[nginx] ...

Верхний/корневой элемент дерева — это родительский процесс всех системных процессов. В данном примере это systemd , который запускается первым при загрузке системы.

pstree объединяет идентичные ветви, заключая их в квадратные скобки и добавляя к ним префикс в виде целого числа, представляющего количество ветвей. Это делает вывод более читабельным и визуально привлекательным.

Ниже приведен пример, показывающий, как используются квадратные скобки:

 ├─2*[agetty]

то же самое, что и:

 ├─agetty ├─agetty

Чтобы отключить объединение одинаковых ветвей, используйте опцию -c :

 pstree -c

Потоки процесса отображаются под родительским процессом и отображаются с использованием имени процесса в фигурных скобках. Вот пример:

 ├─lxcfs───2*[{lxcfs}]

Используйте опцию -t , чтобы отобразить полные имена потоков. Чтобы скрыть потоки и показать только процессы, используйте опцию -T .

Обычно pstree выводит много строк, которые не помещаются на экране. Чтобы просматривать вывод постранично, передайте его команде less :

 pstree | less

Если имя пользователя указано в качестве аргумента, pstree покажет только процессы, принадлежащие этому пользователю. Например, следующая команда покажет только те процессы, которые были запущены пользователем «linuxize»:

 pstree linuxize

Если PID указан в качестве аргумента, pstree отображает дерево, корнем которого является заданный процесс. Вот пример:

 pstree 1943
 sshd───bash───pstree

Чтобы отобразить родительские процессы заданного процесса, используйте опцию -s , а затем PID процесса:

 pstree -s 1943
 systemd───sshd───sshd───bash───pstree

Показать PID и PGID

Обычно при запуске команды pstree наиболее важной информацией, которую ищет пользователь, является идентификатор процесса. Например, знание PID позволяет завершить неисправный процесс .

Опция -p указывает pstree отображать PID:

 pstree -p

Идентификаторы PID указаны в скобках после каждого процесса или потока.

 systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956) │ ├─{VBoxService}(957) │ ├─{VBoxService}(958) │ ├─{VBoxService}(959) │ ├─{VBoxService}(960) │ ├─{VBoxService}(961) │ └─{VBoxService}(962) ...

По умолчанию pstree сортирует процессы с одинаковым родительским процессом по имени. Параметр -n указывает pstree использовать числовую сортировку, то есть сортировку по PID:

 pstree -pn

Идентификатор группы процессов (PGID) — это идентификатор первого члена группы процессов. Для просмотра PGID используйте опцию -g :

 pstree -g

Идентификаторы PID также отображаются в скобках после каждого процесса или потока.

 systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ └─{VBoxService}(954) ...

Если отображаются PID или PGID, слияние неявно отключается.

Показать аргументы командной строки

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

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

 pstree -a
 ... ├─agetty -o -p -- \u --keep-baud 115200,38400,9600 ttyS0 vt220 ├─agetty -o -p -- \u --noclear tty1 linux ...

Выделение

pstree также позволяет выделять процессы для лучшего визуального представления.

Опция -h указывает pstree выделить текущий процесс и всех его предшественников.

 pstree -h

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

 pstree -H PID_NUMBER

Если подсветка не поддерживается, команда завершится с ошибкой.

Заключение

Команда pstree отображает запущенные процессы в виде древовидной структуры.

Для получения информации обо всех доступных параметрах pstree введите man pstree в терминале.

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

ps- терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *