
Un outil en ligne de commande pour une sortie de type pstree sur macOS avec des capacités supplémentaires de capture de pid.

À propos
Lisez tout sur le concept TrueTree ici
TrueTree est bien plus qu'une simple commande pstree pour macOS. Il est utilisé pour afficher un arbre des processus en cours d'exécution en utilisant une hiérarchie construite à partir de pids supplémentaires qui peuvent être collectés depuis le système d'exploitation. L'arbre de processus standard sur macOS, construit avec les pids et ppids traditionnels, est peu utile sur macOS en raison de toutes les communications XPC en jeu. La grande majorité des processus finissent par avoir comme processus parent launchd. TrueTree affiche cependant un arbre de processus conçu pour être utile aux intervenants en réponse aux incidents, aux chasseurs de menaces, aux chercheurs, et à tout le monde entre les deux !
Mise à jour majeure : En raison de l'évolution constante des fonctionnalités de macOS, depuis macOS 11 certaines fonctionnalités ne fonctionnent plus tout à fait comme avant lorsque j'ai écrit le billet de blog original pour TrueTree. Apple a introduit un nouveau processus "runningboardd" qui s'avère être le véritable parent de nombreux processus. Pour contourner ce problème, TrueTree a été mis à jour pour utiliser le framework Application Services, ce qui a permis d'obtenir le véritable parent dans certains scénarios. Cependant, cela ne permet plus d'obtenir un processus parent réel si ce processus parent s'est terminé. Cela rend difficile l'identification de certains parents réels comme la commande "open". Un petit prix à payer pour garantir que TrueTree continue de fonctionner sur toutes les versions de macOS. Certains autres signes d'un vrai parent peuvent souvent être trouvés dans la sortie de launchctl procinfo. Cela pourrait être pris en compte à l'avenir.
./TrueTree -h
--nocolor -> Ne pas colorer les éléments dans la sortie
--timeline -> Trier et imprimer tous les processus par leur horodatage de création
--timestamps -> Inclure les horodatages des processus
--standard -> Imprimer l'arbre Unix standard au lieu de TrueTree
--sources -> Afficher la source d'où provient chaque parent de processus
--nonetwork -> Ne pas imprimer les connexions réseau
--nopid -> Ne pas imprimer le pid à côté de chaque processus
--nopath -> Imprimer uniquement le nom du processus au lieu des chemins complets
--version -> Afficher le numéro de version de TrueTree
-o -> sortie vers un fichier
Note : nécessite les droits root
./TrueTree
Affiche un arbre de processus amélioré utilisant le concept TrueTree

./TrueTree --standard
Pour une sortie arborescente basée sur les pids et ppids standard, utilisez --standard

./TrueTree --timestamps
Pour une sortie dans l'un ou l'autre format avec l'heure de création du processus ajoutée, utilisez l'option --timestamps

./TrueTree --sources
Pour montrer d'où chaque pid parent a été obtenu, utilisez l'option --sources

./TrueTree --timeline
Ne collecte pas d'arbre. Imprime simplement les processus triés par heure de création.
