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!

War es hilfreich?

Lösung

Sie können versuchen, die Ausgabe von strace Befehl zu analysieren. Insbesondere werden Sie wie

in etwas interessiert sein
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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top