Гид по технологиям

pstree: визуализация процессов Linux в виде дерева

4 min read Linux Обновлено 29 Dec 2025
pstree: дерево процессов Linux
pstree: дерево процессов Linux

Крупное дерево с ветвями, иллюстрация иерархии процессов

Что такое pstree?

pstree — утилита, которая показывает процессы в виде дерева: родительские процессы — «ствол», дочерние — «ветви». Это помогает понять, как процессы связаны друг с другом и от какого процесса они произошли. Коротко: init (на большинстве современных дистрибутивов — systemd) является общим предком всех процессов.

Установка pstree на Linux

pstree входит в набор утилит psmisc и часто уже установлен. Если его нет, установите через пакетный менеджер вашей системы.

Для Debian / Ubuntu:

sudo apt update
sudo apt install psmisc

Для Arch Linux:

sudo pacman -S psmisc

Для дистрибутивов на базе Red Hat / Fedora:

sudo dnf install psmisc

Проверить наличие можно командой:

which pstree && pstree --version

Важно: имя пакета — psmisc; сам исполняемый файл называется pstree.

Как использовать pstree для просмотра процессов

Базовый запуск

Просто выполните:

pstree

Вы увидите дерево всех процессов в системе. Родительские процессы идут слева, их дочерние процессы — справа.

Вывод pstree в терминале

Показать процессы конкретного пользователя

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

pstree root

Показать идентификаторы процессов (PID)

Опция -p выводит PID рядом с именем процесса:

pstree -p

Вывод pstree с PID рядом с именами процессов

Подсветка текущего процесса

Чтобы выделить вашу текущую оболочку (или процесс, в котором вы находитесь), используйте -h:

pstree -h

Если нужно подсветить конкретный PID, используйте заглавную H и число PID:

pstree -H 1234

Пример подсветки процесса с опцией -h

Цветовая кодировка по возрасту процесса

Опция -C вместе с ключом age создаёт цветовую маркировку по возрасту процесса. Значение age — текущая метка для расчёта цвета:

pstree -C age

Принцип простой: процессы, созданные в последние 60 секунд — зелёные; процессы, запущенные около часа назад — жёлтые; более старые процессы — красные. Это помогает быстро заметить недавно созданные демоны или порожденные процессы.

Вывод pstree с цветовой маркировкой по возрасту процессов

Полезные флаги и сочетания (шпаргалка)

  • pstree -p — показать PID для каждого процесса
  • pstree -a — показать аргументы процессов (командную строку)
  • pstree -u — показать пользователей рядом с процессами
  • pstree -A — использовать ASCII-символы для рисунка дерева (если окружение не поддерживает UTF-8)
  • pstree -g — показать группы процессов
  • pstree -n — сортировка по PID (упорядочить дочерние процессы)

Комбинации:

pstree -ap   # PID + аргументы
pstree -pun  # PID + пользователи + сортировка

Совет: если вывод слишком широк, перенаправьте его в less:

pstree -ap | less -S

Альтернативы и когда pstree не подходит

  • ps –forest: если вам нужна одна строка с подробной информацией о конкретных полях (UID, PID, PPID, CMD), ps с опцией –forest даст похожее дерево, но в формате ps.
  • htop/htop — интерактивные мониторы процессов с возможностью сортировки по нагрузке, памяти и CPU; но htop показывает менее наглядную иерархию процесса в виде списка.
  • pgrep/pgrep -P — для поиска дочерних процессов по PID.

Когда pstree не подойдёт:

  • Если нужно мониторить использование CPU/памяти в реальном времени — используйте top/htop/atop.
  • Если требуется подробный отчёт по открытым файлам/сокетам — используйте lsof или ss.

Диагностика проблем и подсказки (когда вывод пустой или неполный)

  • Если pstree показывает неожиданно мало процессов, проверьте права: некоторые процессы, принадлежащие другим пользователям, могут быть скрыты в ограниченных сессиях.
  • На контейнерах PID 1 может быть специфичным (например, tini или systemd внутри контейнера), поэтому корневая иерархия будет отличаться от хоста.
  • В средах с chroot или в контейнерах procfs может быть смонтирован по-другому — проверьте /proc.

Важно: поведение pstree зависит от /proc; если файловая система /proc недоступна или смонтирована с ограничениями, вывод может быть неполным.

Рольно-ориентированный чеклист

  • Системному администратору:

    • Установить psmisc и проверить pstree –version
    • Использовать pstree -p для сопоставления PID и процессов
    • При расследовании процессов использовать pstree -ap и lsof
  • Разработчику:

    • Смотреть дерево пользовательских процессов (pstree $USER)
    • Подсвечивать текущую сессию (-h) при отладке форков
    • Сравнивать вывод с ps для проверки аргументов запуска
  • SRE / Инженеру поддержки:

    • Использовать pstree -C age для поиска всплесков новых процессов
    • Включать сортировку и аргументы (-pun) при анализе автоматических запусков

Модель принятия решения (mermaid)

flowchart TD
  A[Нужно увидеть иерархию процессов?] -->|Да| B[pstree]
  A -->|Нет| C[Использовать ps/htop/lsof]
  B --> D{Нужны PID?}
  D -->|Да| E[pstree -p]
  D -->|Нет| F[pstree]
  E --> G{Нужны аргументы и пользователи?}
  G -->|Да| H[pstree -apun]
  G -->|Нет| I[Просмотр дерева]

Критерии приёмки

  • pstree установлен и запускается без ошибок (pstree –version возвращает код 0).
  • Вывод содержит ожидаемые процессы и их PID при использовании -p.
  • Подсветка -h выделяет текущую оболочку.
  • Цветовая маркировка -C age визуально различает недавно созданные процессы.

Короткий глоссарий

  • PID — идентификатор процесса (Process ID).
  • init/systemd — корневой процесс, предок всех процессов в системе.
  • procfs (/proc) — виртуальная файловая система, где хранится информация о процессах.

Итог

pstree — простая и наглядная утилита для понимания иерархии процессов в Linux. Она отлично дополняет ps и htop, когда нужно быстро увидеть, какие процессы породили другие. Используйте опции -p, -h, -C и сочетания флагов для гибкой отладки и мониторинга.

Примечание: pstree полагается на /proc; в контейнерных средах и при нестандартном монтировании procfs поведение может отличаться.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Списки контактов на iPhone — создание и управление
iPhone

Списки контактов на iPhone — создание и управление

Многозадачность и жесты iPadOS
iPadOS

Многозадачность и жесты iPadOS

Nest.js CRUD с TypeORM и PostgreSQL
Backend

Nest.js CRUD с TypeORM и PostgreSQL

Конвертация прямой ссылки в торрент
Технологии

Конвертация прямой ссылки в торрент

Распечатать контакты Gmail — быстро и безопасно
Email

Распечатать контакты Gmail — быстро и безопасно

Как изменить MAC‑адрес на Mac — пошаговое руководство
macOS

Как изменить MAC‑адрес на Mac — пошаговое руководство