
Uma ferramenta de linha de comando para saída semelhante ao pstree no macOS com capacidades adicionais de captura de pid

Sobre
Leia tudo sobre o conceito TrueTree aqui
O TrueTree é mais do que apenas um comando pstree para macOS. Ele é usado para exibir uma árvore de processos dos processos atualmente em execução usando uma hierarquia construída com pids adicionais que podem ser coletados do sistema operacional. A árvore de processos padrão no macOS, que pode ser construída com pids e ppids tradicionais, é menos útil no macOS devido a toda a comunicação XPC envolvida. A grande maioria dos processos acaba tendo o launchd como processo pai. No entanto, o TrueTree exibe uma árvore de processos projetada para ser útil para respondedores de incidentes, caçadores de ameaças, pesquisadores e todos os demais!
Grande Atualização: Devido às constantes mudanças de recursos no macOS, desde o macOS 11 alguns recursos não funcionam exatamente como antes quando escrevi o post original do blog para o TrueTree. A Apple introduziu a adição de um novo processo "runningboardd" que acaba sendo o verdadeiro pai de muitos processos. Para contornar isso, o TrueTree foi atualizado para usar o framework Application Services, que permitiu adquirir o verdadeiro pai em alguns cenários. No entanto, isso não permite mais a aquisição de um processo pai verdadeiro se esse processo pai tiver sido encerrado. Isso dificulta a identificação de alguns pais verdadeiros, como o comando "open". Um pequeno preço a pagar para garantir que o TrueTree continue operando nas versões do macOS. Outros sinais de um pai verdadeiro podem ser encontrados na saída do launchctl procinfo. Isso pode ser levado em consideração no futuro.
./TrueTree -h
--nocolor -> Não colorir itens na saída
--timeline -> Ordenar e imprimir todos os processos por seu timestamp de criação
--timestamps -> Incluir timestamps dos processos
--standard -> Imprimir a árvore Unix padrão em vez do TrueTree
--sources -> Imprimir a fonte de onde o pai de cada processo veio
--nonetwork -> Não imprimir conexão de rede
--nopid -> Não imprimir o pid ao lado de cada processo
--nopath -> Imprimir apenas o nome do processo em vez do caminho completo
--version -> Imprimir o número da versão do TrueTree
-o -> Salvar saída em arquivo
Nota: Requer Root
./TrueTree
Exibe uma árvore de processos aprimorada usando o conceito TrueTree

./TrueTree --standard
Para saída em árvore baseada em pids e ppids padrão, use --standard

./TrueTree --timestamps
Para saída em qualquer formato com a hora de criação do processo adicionada, use a opção --timestamps

./TrueTree --sources
Para mostrar de onde cada pid pai foi adquirido, use a opção --sources

./TrueTree --timeline
Não coleta uma árvore. Em vez disso, apenas imprime os processos ordenados por hora de criação
