
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
TrueTree é mais do que apenas um comando pstree para macOS. Ele é usado para exibir uma árvore de processos dos processos em execução no momento, utilizando uma hierarquia construída sobre 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 é pouco útil no macOS devido a toda a comunicação XPC envolvida. A grande maioria dos processos acaba tendo o launchd como processo pai. O TrueTree, no entanto, exibe uma árvore de processos destinada a ser útil para respondedores de incidentes, caçadores de ameaças, pesquisadores e tudo mais!
Atualização Importante: Devido às características em constante mudança no macOS, desde o macOS 11 alguns recursos não funcionam exatamente como costumavam funcionar quando escrevi o post original do blog sobre 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, o que permitiu obter o verdadeiro pai em alguns cenários. No entanto, isso não permite mais a obtenção de um processo pai verdadeiro se esse processo pai tiver terminado. 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 em todas as versões do macOS. Alguns outros sinais de um pai verdadeiro podem frequentemente ser encontrados na saída do procinfo do launchctl. Isso pode ser levado em consideração no futuro
Novo no TrueTree 0.9: Não é mais necessário root para executar o TrueTree. Sem root, os pids responsáveis são estimados a partir de coalizões de processos, e as conexões de rede são limitadas aos seus próprios processos. Uma coalizão é um grupo de processos relacionados que o kernel do macOS rastreia em conjunto, como um aplicativo e os helpers e serviços XPC que ele inicia.
Quando executado como root, o TrueTree usa o método libquarantine original, que é o mais confiável. Para usar o método de coalizão como root, passe --acquire-responsible-via-coalition .
Novos testes também foram adicionados, incluindo testes de coalizão que protegem contra o macOS alterar silenciosamente uma interface privada do kernel da qual o TrueTree depende.
./TrueTree -h
--nocolor -> Não aplica código de cores aos itens na saída
--timeline -> Ordena e imprime todos os processos pelo seu timestamp de criação
--timestamps -> Inclui timestamps dos processos
--standard -> Imprime a árvore Unix padrão em vez do TrueTree
--sources -> Imprime a origem de onde veio o pai de cada processo
--nonetwork -> Não imprime conexão de rede
--nopid -> Não imprime o pid ao lado de cada processo
--nopath -> Imprime apenas o nome do processo em vez de caminhos completos
--json -> Gera JSON em vez de texto (funciona com --standard, --timeline e -o)
--version -> Imprime o número da versão do TrueTree
--acquire-responsible-via-coalition
Estima pids responsáveis a partir de coalizões de processos em vez de libquarantine.
Coalizões são sempre usadas quando não executado como root.
-o -> grava a saída em arquivo
./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 o horário de criação do processo adicionado, use a opção --timestamps

./TrueTree --sources
Para mostrar de onde cada pid pai foi obtido, 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
