管道跟踪到grep


30

我正在尝试运行strace低谷ccze,并且管道无法按预期工作。

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

是否有strace引起这种现象的特殊现象?

Answers:


48

strace在标准错误而不是标准输出上打印其跟踪。这是因为通常要重定向程序的标准输出,但通常不会将strace的stderr和程序的stderr混合使用。

因此,您应该将strace的stderr 重定向到stdout,以便能够对其进行管道传输:

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

除了您真正要寻找的是

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

有用!!谢谢!-我实际上并不是只看open电话,我只是举一个例子,我真正想做的是突出色彩
Andrei

我正在strace: Invalid process id: '-e'使用最后一条命令。我使用的是4.8版。2010-03-30。
伊利亚·林恩

啊,我实际上有httpd(RHEL)。
伊利亚·林恩

1
@ElijahLynn更换apache2你所感兴趣的进程的名称检查。pgrep打印一个PID,否则选择一个并运行如sudo strace -p 1234 -e open
吉尔“SO-停止作恶”

@Andrei,如何使用vim颜色语法突出显示?strace $CMD 2>&1 > /dev/null | vim -c ':set syntax=strace' -
Pablo A
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.