Чтобы стать богатым, необходимы три вещи: ум, талант и много денег (Е. Кащеев).

Команда Pstree в Linux

3 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
24 октября 2019
AndreyEx. Logotip
При работе на компьютере с 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 отображаются только процессы, принадлежащие этому пользователю. Например, следующая команда покажет только те процессы, которые были запущены пользователем с именем «andreyex»:

pstree andreyex

Когда в качестве аргумента указан 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 использовать числовую сортировки, т.е. сортировка по PIDs:

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 в свой терминал.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

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

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

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close