strace
バケツを実行しようとしていますが、ccze
パイプラインが期待どおりに機能しません。
テストの実行に使用するコマンドラインは次のとおりですsudo strace -p $(pgrep apache2) | grep open
。すべての行が出力され、grepは無視されます。
strace
このような行動に特別な理由がありますか?
答え1
strace
標準出力ではなく標準エラーのトレースを印刷します。プログラムの標準エラーをリダイレクトするのが一般的だからです。しかし、straceの標準エラーとプログラムの標準エラーを混在させることは通常問題ではありません。
したがって、strace
パイプできるようにstderrをstdoutにリダイレクトする必要があります。
sudo strace -p $(pgrep apache2) 2>&1 | grep open
あなたが本当に欲しいものを除いて
sudo strace -p $(pgrep apache2) -e open