Wie ein Prozessbaum Spur / log eines Prozesses in Linux zu bekommen?
Frage
Ich möchte wissen, welche ausführbaren Dateien ein Skript gestartet und in welcher Reihenfolge (und verfolgen diese ausführbaren Dateien rekursiv).
Zum Beispiel, lassen Sie uns sagen, ich habe ein Bash-Skript hier (genannt abc.sh):
#!/bin/bash
ls
gcc
Ich möchte dieses Skript mit einem „trace / log Befehl“ laufen und so etwas wie diese:
abc.sh -- ls
|-- gcc -- cpp
-- cc1
... etc.
Diese zeigen, dass ls genannt abc.sh und gcc. gcc, die wiederum genannt CPP und cc1.
Ist das möglich? Wie kann ich es tun? Eine Baumansicht wie die oben wäre schön, aber ein einfacher Blick als gut funktionieren würde.
Beachten Sie, dass ich die aktuelle Momentaufnahme des Prozessbaumes nicht will. Vielmehr möchte ich eine Spur oder ein Protokoll der Laich Prozesse. Timing Anmerkung wäre auch nützlich sein.
Danke!
Lösung
Sie können versuchen, die Ausgabe von strace
Befehl zu analysieren.
Insbesondere werden Sie wie
strace -f -tt -e trace=execve ./abc.sh
Andere Tipps
Sie können pstree Befehl verwenden. Es wurde genau zu zeigen, konzipiert, was Sie suchen,: Prozessbaum (daher auch der Name, pstree). Es wird nicht geben Sie Trace, aber man konnte es mehrmals aufrufen etwas ähnliches zu bekommen, was Sie suchen.