通过管道 strace 到 grep

通过管道 strace 到 grep

我正在尝试运行straceccze,但管道未按预期工作。

我运行测试的命令行是sudo strace -p $(pgrep apache2) | grep open,所有行都是输出,忽略 grep。

有什么特别的原因strace导致这种行为吗?

答案1

strace在标准错误上打印其痕迹,而不是在标准输出上。那是因为想要重定向程序的标准输出是很常见的,但 strace 的 stderr 和程序的 stderr 混合在一起通常不是问题。

因此,您应该将strace的 stderr 重定向到 stdout 以便能够通过管道传输它:

sudo strace -p $(pgrep apache2) 2>&1 | grep open

除了你真正想要的是

sudo strace -p $(pgrep apache2) -e open

相关内容