Como capturar stdout de um processo em execução redirecionado para / dev / null

5

Eu quero capturar stdout do processo em execução, cujo stdout está sendo redirecionado para /dev/null . Eu tentei usar o sistema de chamada fcntl() , no entanto, no momento em que eu fecho fd "1", ele estava sendo alocado para outros arquivos, pois era menor número fd disponível.

Alguma idéia de como bloquear o dado fd e reatribuir a outro arquivo?

    
por Srihari Konakanchi 04.07.2013 / 18:34

3 respostas

3

Acho que você pode capturar isso usando o sistema de arquivos proc:

$ cat /proc/<PID>/fd/1

    
por 04.07.2013 / 19:26
2

Eu acredito que você pode usar gdb para fazer isso. Veja várias respostas para essa pergunta do stackoverflow . Parece que pode vir de este artigo do blog .

    
por 05.07.2013 / 00:51
0

Você pode fazer isso usando o rirectirect ( link ).

reredirect -m /dev/null <PID>

Você pode restaurar a saída inicial de seu processo posteriormente usando algo como:

reredirect -N -O <M> -E <N> <PID>

( <M> e <N> são fornecidos pelo lançamento anterior do reredirect).

reredirect README também explica como redirecionar para outro comando.

    
por 14.10.2014 / 16:20

Tags