GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Strace in Datei umleiten

Gibt es einen bestimmten Grund, warum Sie das Flag -o nicht verwenden können?

ps auxw | grep sbin/apache | awk '{print " -p " $2}' | xargs strace -o /tmp/trace.txt

Außerdem sollten Sie einen Regex-Trick anwenden, um Ihren grep-Prozess nicht in der Prozessliste zu finden.

ps auxw | grep 'sbin/[a]pache' ....

Denken Sie auch daran, dass im speziellen Fall von Apache

  1. Apache ist (normalerweise) Multiprozess, wollen Sie den Elternteil oder einen der Kinder bekommen? Ich würde das '-f'-Flag zu strace hinzufügen, das (unter anderem) die PID in die Ausgabe einfügt.
  2. Sie können die Prozess-ID des übergeordneten Hauptprozesses aus der PID-Datei abrufen.

    z.B. strace -o /tmp//trace.txt -f $(

Das ist also die Frage, die Sie stellen. Aber was versuchen Sie zu tun? Beim Start debuggen? strace einen untergeordneten Prozess, der eine Anfrage bedient? Sehen Sie sich auch das Flag -X für Apache an.


Im Allgemeinen kann strace "in eine Datei umgeleitet werden", aber es schreibt seine Ausgabe auf stderr (mischt es mit der stderr des Programms), also wäre es wie

strace progname 2>my_strace_output

Wenn Sie möchten, dass "alle Ausgaben" in eine Datei gehen:

strace progname 1>my_strace_output 2>&1

wenn Sie es "grep" können möchten:

strace progname 2>&1 | grep ...

Beachten Sie jedoch, dass beim grep und Senden an eine Datei viel Pufferung auftritt:https://unix.stackexchange.com/questions/338330/grepping-strace-output-gets-hard


Linux
  1. Wie leite ich nur Stderr um?

  2. Grep Wie unterdrücke ich die Anzeige einer nicht übereinstimmenden Datei?

  3. Lesen von Grep-Mustern aus einer Datei?

  4. Wie kann man einen kontinuierlichen Stream „grep“?

  5. grep ohne Pfad/Datei:Zeile anzuzeigen

So leiten Sie stderr in Bash auf stdout um

So finden Sie eine Zeichenfolge in einer Datei unter Linux

Ausgabe umleiten und leiten?

Linux grep-Befehl

Wie leitet man die Ausgabe von system() in eine Datei um?

Wie man einen Abschnitt einer Datei in der Bash-Shell grep