Wie kann ich die OS X dtruss-Ausgabe umleiten, wenn ich mit sudo arbeite?

9

Ich verwende dtrussMac OS X 10.9. Ein einfaches Beispiel ist:

sudo -c ls

Aber ich möchte die dtrussAusgabe in einer Datei erfassen . Ich habe etwas gesehen, das darauf hindeutet, dass ich etwas tun kann wie:

sudo bash -c 'dtruss -c ls >x'

Aber wenn ich das mache, dtrussgeht die Ausgabe von immer noch an das Terminal und die Liste der Dateien von lswird in die Datei umgeleitet.

Wie kann ich die Ausgabe dtrussin eine Datei umleiten ?

Chris Markle
quelle
1
dtruss schreibt wahrscheinlich an stderrstatt hexe, stdoutwas >xerfasst. Diese Frage erklärt, was zu tun ist: Linux weniger Verhalten und stderr
Nifle

Antworten:

9

Ich habe es so gemacht:

sudo dtruss -f -p 12345 2> /tmp/trace.txt
  • -f sagt, untergeordnete Prozesse zu folgen.
  • -p Gibt an, welche Prozess-ID verfolgt werden soll.
  • 12345ist ein Platzhalter für eine Prozess-ID. Sie könnten das bekommen, indem Sie auf topoder schauen ps -A.
  • 2>leitet einen Standardfehler in die Ausgabedatei. Aus irgendeinem Grund gibt dtruss alles auf stderr aus.
Luke Quinane
quelle
Könnten Sie Ihre Antwort erweitern, um zu erklären, was dies bewirkt? Vielen Dank.
Fixer1234
'-f' sagt untergeordnete Prozesse folgen, '-p' gibt an, welche Prozess-ID verfolgt werden soll, '2>' leitet den Standardfehler in die Ausgabedatei. Aus irgendeinem Grund gibt dtruss alles auf stderr aus.
Luke Quinane
Ist 12345 ein Platzhalter für die Prozess-ID (und woher würde das kommen)?
Fixer1234
Es ist ein Platzhalter für eine Prozess-ID. Sie könnten das bekommen, indem Sie auf topoder schauen ps -A.
Luke Quinane