Acho que você pode capturar isso usando o sistema de arquivos proc:
$ cat /proc/<PID>/fd/1
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?
Acho que você pode capturar isso usando o sistema de arquivos proc:
$ cat /proc/<PID>/fd/1
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 .
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.