piping strace para grep

25

Estou tentando executar strace trough ccze e o canal não funciona como esperado.

A linha de comando que estou executando para testar é sudo strace -p $(pgrep apache2) | grep open e todas as linhas são geradas, ignorando o grep.

Existe algo especial sobre strace que causa esse comportamento?

    
por Andrei 15.09.2012 / 01:37

1 resposta

40

strace imprime seus traços no erro padrão, não na saída padrão. Isso porque é comum querer redirecionar a saída padrão do programa, mas geralmente não é um problema que o stderr do strace e o stderr do programa estejam misturados.

Portanto, você deve redirecionar o stderr de strace para stdout para poder canalizá-lo:

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

exceto que o que você realmente procura é

sudo strace -p $(pgrep apache2) -e open
    
por 15.09.2012 / 01:56