web-dev-qa-db-ja.com

straceをgrepにパイプする

strace trough cczeを実行しようとしていますが、パイプが期待どおりに動作しません。

テストのために実行しているコマンドラインはSudo strace -p $(pgrep Apache2) | grep openであり、grepを無視してすべての行が出力されます。

この動作を引き起こすstraceについて何か特別なことはありますか?

33
Andrei

straceは、標準出力ではなく標準エラーにトレースを出力します。これは、プログラムの標準出力をリダイレクトすることが一般的であるためですが、通常、straceのstderrとプログラムのstderrが混在しているという問題はありません。

したがって、straceのstderrをstdoutにリダイレクトして、パイプできるようにする必要があります。

Sudo strace -p $(pgrep Apache2) 2>&1 | grep open

あなたが本当に探しているのは

Sudo strace -p $(pgrep Apache2) -e open