-o フラグを使用できない特定の理由はありますか?
ps auxw | grep sbin/apache | awk '{print " -p " $2}' | xargs strace -o /tmp/trace.txt
また、正規表現のトリックを使用して、grep プロセスがプロセス リストに含まれないようにする必要があります。
ps auxw | grep 'sbin/[a]pache' ....
また、Apache の特定のケースでは、
<オール>PID ファイルからメインの親プロセスのプロセス ID を取得できます。
例えばstrace -o /tmp//trace.txt -f $(
それで、それはあなたが求めている質問です..しかし、あなたは何をしようとしていますか?起動時にデバッグしますか?リクエストを処理する子プロセスをトレースしますか? apache への -X フラグも見てください。
一般に、strace は「ファイルにリダイレクトできます」が、その出力を stderr に書き込む (プログラムの stderr と混合する) ため、次のようになります
strace progname 2>my_strace_output
「すべての出力」をファイルに出力したい場合:
strace progname 1>my_strace_output 2>&1
「grep」できるようにしたい場合:
strace progname 2>&1 | grep ...
ただし、grep してファイルに送信すると、大量のバッファリングが発生することに注意してください:https://unix.stackexchange.com/questions/338330/grepping-strace-output-gets-hard