2016-10-13 1 views
1

Ich überprüfe ein bestimmtes make-System, das Compiler ausgeführt wird. Ich möchte alle Kindprozesse verfolgen, die jemals von einem solchen "Root" -Prozess erzeugt wurden.Verfolgen aller Child-Prozess von einem Root-Prozess erzeugt

Ich bin mir bewusst, es gibt die ps Befehl und als ich bin ein Python-Benutzer, die psutil Paket. Aber ich bin mir nicht sicher, ob ich einige kurzlebige Prozesse zwischen den Anrufen verpassen werde.

Ich denke, was ich wirklich will, ist etwas wie inotify (oder watchdog in Python), aber anstatt Tracking-Verzeichnis, verfolgt es alle untergeordneten Prozessaktivität.

Gibt es einen solchen Systemaufruf, oder vorzugsweise Paket von Python, das das tut?

Vielen Dank im Voraus.

+1

Ich weiß nichts über Python im Speziellen, aber 'strace -f -e trace = Prozess ' wird Ihnen diese Info geben. Obwohl in einem Format, das einige (nicht zu schwierige) Parsing erfordert. – kaylum

+0

@kaylum Danke ich wusste, dass es etwas für diesen Zweck geben muss :) Würden Sie bitte eine Antwort schreiben, damit ich akzeptieren kann? – tdihp

Antwort

1

sttace kann diese Info bereitstellen. Sie können jedoch die Ausgabe analysieren müssen nur die Informationen, die Sie interessiert sind zu bekommen.

strace -f -e trace=process <executable> 

, dass alle Kindprozesse von <executable> verfolgen und wird verfolgen nur die prozessbezogene syscalls (im Wesentlichen wait, fork, clone und exec).

Verwandte Themen