Команда Pstree в Linux

Команда Pstree в Linux

Pstree Command in Linux

11 Января 2020 | Терминал

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

Команда Pstree в Linux

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


Как использовать 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 показать ИДП:

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


    Комментарии

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

Загрузка комментариев...