
Инструмент командной строки для вывода в стиле pstree на macOS с дополнительными возможностями захвата PID

О программе
Подробнее о концепции TrueTree можно прочитать здесь.
TrueTree — это не просто команда pstree для macOS. Она используется для отображения дерева процессов для текущих запущенных процессов, используя иерархию, построенную на дополнительных PID, полученных из операционной системы. Стандартное дерево процессов в macOS, которое можно построить на основе традиционных PID и PPID, недостаточно полезно из-за активного обмена данными через XPC. Подавляющее большинство процессов в итоге имеют родительский процесс launchd. TrueTree же отображает дерево процессов, предназначенное для инцидент-респондеров, охотников за угрозами, исследователей и всех, кто работает в этой сфере!
Основное обновление: Из-за постоянно меняющихся функций в macOS, начиная с macOS 11 некоторые функции работают не совсем так, как при написании оригинальной статьи о TrueTree. Apple представила новый процесс "runningboardd", который становится истинным родителем многих процессов. Чтобы обойти это, TrueTree был обновлён для использования фреймворка Application Services, что позволяет в некоторых сценариях получить истинного родителя. Однако теперь это не позволяет получить истинный родительский процесс, если этот родительский процесс завершился. Это затрудняет точное определение некоторых истинных родителей, например, команды "open". Небольшая цена, чтобы TrueTree продолжал работать в разных версиях macOS. Некоторые другие признаки истинного родителя часто можно найти в выводе launchctl procinfo. Возможно, это будет учтено в будущем.
./TrueTree -h
--nocolor -> Не раскрашивать элементы в выводе
--timeline -> Сортировать и вывести все процессы по времени их создания
--timestamps -> Включить временные метки процессов
--standard -> Вывести стандартное дерево Unix вместо TrueTree
--sources -> Показать источник, из которого был получен родительский PID для каждого процесса
--nonetwork -> Не выводить сетевые подключения
--nopid -> Не выводить PID рядом с каждым процессом
--nopath -> Выводить только имя процесса вместо полного пути
--version -> Показать номер версии TrueTree
-o -> Вывод в файл
Примечание: требуются права root
./TrueTree
Отображает расширенное дерево процессов с использованием концепции TrueTree

./TrueTree --standard
Для вывода дерева на основе стандартных PID и PPID используйте --standard

./TrueTree --timestamps
Для вывода в любом формате с добавлением времени создания процесса используйте опцию --timestamps

./TrueTree --sources
Чтобы увидеть, откуда был получен каждый родительский PID, используйте опцию --sources

./TrueTree --timeline
Не строит дерево. Просто выводит процессы, отсортированные по времени создания
