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.