Redirecionar strace para arquivo

7

Estou tentando rastrear o apache2. Estes são os comandos que estou tentando executar.

ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace >> trace.txt

Eu tentei

(ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace ) >> trace.txt

ou

ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace | xargs >> trace.txt
    
por Marin 06.03.2013 / 15:40

4 respostas

8

Alguma razão em particular pela qual você não pode usar o sinalizador -o?

ps auxw | grep sbin/apache | awk '{print " -p " $2}' | xargs strace -o /tmp/trace.txt

Além disso, você deve usar algum truque de regex para não capturar seu processo do grep na lista de processos.

ps auxw | grep 'sbin/[a]pache' ....

Lembre-se também que, no caso específico do apache,

  1. O Apache é (geralmente) multiprocessado, você deseja obter o pai ou um dos filhos? Eu adicionaria o sinalizador '-f' para strace, que (entre outras coisas) insere o PID na saída.
  2. Você pode obter o ID do processo pai principal do arquivo PID.

    por exemplo. strace -o /tmp//trace.txt -f $ (< /path/to/apache.pid)

Então, essa é a pergunta que você está fazendo ... mas o que você está tentando fazer? Depurar na inicialização? strace um processo filho atendendo a uma solicitação? Veja também o sinalizador -X no apache.

    
por 06.03.2013 / 17:24
1
 ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace 2>> trace.txt
    
por 06.03.2013 / 16:19
0

Você também pode direcionar o padrão para um arquivo dessa maneira:

(time /bin/ls) &> /tmp/time.txt

ou para depurar um script php:

(strace php /path/to/www/script.php) &> strace_output.txt
    
por 18.02.2016 / 16:37
0

Em geral, strace "pode ser redirecionado para um arquivo", mas grava sua saída para stderr (misturando-o com o stderr do programa), então seria como

strace progname 2>my_strace_output

Se você quiser "todas as saídas", vá para um arquivo:

strace progname 1>my_strace_output 2>&1

se você quiser "grep":

strace progname 2>&1 | grep ...

no entanto, esteja ciente de que, se você enviar grep e enviá-lo para um arquivo, ocorrerão muitos buffering: link

    
por 21.08.2018 / 22:06

Tags