Поиск по сайту:

Учебное пособие по команде Linux pstree для начинающих (8 примеров)


На этой странице

  1. Команда Linux pstree
  2. Q1. Как использовать команду pstree?
  3. Вопрос 2. Как заставить pstree включать аргументы командной строки в вывод?
  4. Вопрос 3. Как заставить pstree расширять одинаковые поддеревья в выводе?
  5. Q4. Как заставить pstree выделить определенный процесс?
  6. В5. Как заставить pstree отображать идентификаторы групп процессов на выходе?
  7. Q6. Как сделать процессы сортировки pstree на основе PID?
  8. Q7. Как сделать так, чтобы дерево процессов pstree отображалось для пользователя?
  9. Q8. Как ограничить Pstree определенным процессом?
  10. Заключение

Поскольку у каждого процесса (кроме самого первого) в системе Linux есть родитель, иногда проще понять, если все процессы отображаются в виде древовидной структуры. Вы будете рады узнать, что существует утилита командной строки, получившая название pstree, которая отображает дерево процессов.

В этом уроке мы обсудим основы команды pstree, используя несколько простых для понимания примеров. Но прежде чем мы это сделаем, стоит упомянуть, что все приведенные здесь примеры были протестированы на компьютере с Ubuntu 22.04 LTS.

Команда Linux pstree

Как уже было сказано в начале, команда pstree отображает дерево процессов. Ниже приведен его синтаксис:

pstree [options]

И вот что об этом говорит справочная страница инструментов:

       pstree shows running processes as a tree.  The tree is rooted at either
       pid  or  init  if  pid  is  omitted.   If a user name is specified, all
       process trees rooted at processes owned by that user are shown.

       pstree visually merges identical branches by  putting  them  in  square
       brackets and prefixing them with the repetition count, e.g.

           init-+-getty
                |-getty
                |-getty
                `-getty

       becomes

           init---4*[getty]

       Child  threads  of a process are found under the parent process and are
       shown with the process name in curly braces, e.g.

           icecast2---13*[{icecast2}]

       If pstree is called as pstree.x11 then it will prompt the user  at  the
       end of the line to press return and will not return until that has hap?
       pened.  This is useful for when pstree is run in a xterminal.

       Certain kernel or mount parameters, such  as  the  hidepid  option  for
       procfs,  will  hide information for some processes. In these situations
       pstree will attempt to build the tree without this information, showing
       process names as question marks.

Ниже приведены несколько примеров в стиле вопросов и ответов, которые должны дать вам хорошее представление о том, как работает команда pstree:

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

Основное использование простое: все, что вам нужно сделать, это запустить pstree без каких-либо опций.

pstree

Итак, вы можете видеть, как pstree выводит информацию, связанную с процессом.

Q2. Как заставить pstree включать аргументы командной строки в вывод?

Это можно сделать с помощью параметра командной строки -a.

pstree -a

Итак, вы можете видеть, что команда pstree теперь также отображает параметры командной строки для некоторых процессов.

Q3. Как заставить pstree расширять одинаковые поддеревья в выводе?

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

Однако, если вы хотите, вы можете заставить инструмент разворачивать идентичные деревья, что вы можете сделать с помощью параметра командной строки -c.

pstree -c

Q4. Как заставить pstree выделить определенный процесс?

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

pstree -H [PID]

Где PID — это идентификатор процесса, который вы хотите выделить. Например, я выделил процесс firefox в своей системе с помощью следующей команды:

pstree -H 3124

Таким образом, вы можете видеть, что имя Firefox немного выделено по сравнению с другими именами.

Q5. Как заставить pstree отображать идентификаторы групп процессов на выходе?

Для этого используйте параметр командной строки -g.

pstree -g

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

Q6. Как сделать процессы сортировки pstree на основе PID?

По умолчанию pstree сортирует процессы с одинаковым предком по имени. Однако, если вы хотите, вы также можете иметь процессы сортировки pstree по PID, что вы можете сделать с помощью параметра командной строки -n.

pstree -n

Обратите внимание, что этот тип сортировки также известен как числовая сортировка.

Q7. Как сделать так, чтобы дерево процессов pstree отображалось для пользователя?

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

Например,

pstree himanshu

Итак, в этом случае в моей системе был произведен следующий вывод:

Q8. Как ограничить Pstree определенным процессом?

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

pstree -s [PID]

Например, я хотел ограничить вывод Pstree только процессом firefox в моей системе, поэтому я выполнил следующую команду:

pstree -s 3124

И вот вывод, который показал инструмент:

Заключение

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