Para onde é direcionado o STDOUT de um programa renegado?

11

Como acompanhamento desta pergunta , eu gostaria de saber para onde o STDOUT e o STDERR de um programa no qual eu executei disown -hsão redirecionados.

Thrawn
fonte

Respostas:

10

disownnão altera os programas STDOUT / ERR. Eles ainda irão para onde você os redirecionou (usando >etc.). Se você não os redirecionou, eles continuarão entrando no terminal a partir do qual você iniciou o programa (até você fechar o terminal, caso em que serão descartados).

Para ilustrar, execute isso em um terminal:

bash -c 'while true; do sleep 1; echo hi; done' &

Isso imprimirá "oi" a cada segundo (e o incomodará terrivelmente ;-)). Se você disownprogramar após o início, o "oi" continuará. Você precisa encontrar o PID do shell (usando, por exemplo, ps) e matá-lo para fazê-lo parar.

Editar:

Com base nos comentários, talvez o que você realmente queira fazer seja recuperar a saída do programa depois de disowneditá-lo e fechar o terminal em que estava sendo executado. Isso é explicado nesta pergunta: Nohup remoto após o fato com o tcsh ( graças ao quack quixote).

sleske
fonte
De acordo com a pergunta anterior, o fato é que ele fechou esse terminal anterior. Como ele pode obter a saída, então?
Gnoupi
@Gnoupi: Acho que não há como recuperar a saída. Pelo menos nunca ouvi falar de nenhuma maneira.
sleske
Obrigado pelo comentário Gnoupi :-) De fato, a saída está longe de ser encontrada. Continuarei procurando :-)
Thrawn
1
esta é realmente a resposta: renegar não muda nada; você precisa configurar qualquer captura ou redirecionamento ao iniciar o processo . se você precisar dele mais tarde, gdb é a sua (única) amigo: superuser.com/questions/50058/...
quack quixote
@ Quack - eu diria que a questão precisa ser refatorada, para enfatizar o caso de uso real, e não apenas a ferramenta. Na forma atual (centrada no repúdio), essa é realmente a resposta correta. Mas, a partir do contexto, com a pergunta anterior, o usuário deseja simplesmente recuperar a saída e, nesse caso, seu link é a resposta.
Gnoupi 29/03/10