Как просмотреть процессы, запущенные с помощью Pstree в Linux

12 set 2022 3 min di lettura
Как просмотреть процессы, запущенные с помощью Pstree в Linux
Indice dei contenuti

Введение

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

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

Если вы хотите использовать команду Pstree на удаленном сервере, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

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

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

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

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

ps [OPTIONS] [USER or PID]

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

В Debian и производных дистрибутивах он уже должен быть установлен по умолчанию, в противном случае выполните эту команду:

sudo apt-get install psmisc

Чтобы установить его на CentOS/RHEL, введите следующую команду:

sudo yum install psmisc

Чтобы использовать команду без каких-либо параметров, просто введите 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 показывает только процессы, принадлежащие этому пользователю. Например, следующая команда покажет только те процессы, которые были запущены пользователем noviello:

pstree noviello

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

pstree -pn

PGID или идентификатор группы 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.

man pstree

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.