Como faço para recuperar um processo rejeitado?

10

Semelhante a muitas perguntas anteriores, encontrei-me executando um trabalho que gostaria de ter exibido na tela. Fui forçado a negar o processo porque precisava desconectar. Agora que reconectei, vejo que o processo ainda está em execução. Como posso "recuperar" o processo, para que eu possa ver sua saída e dar entrada?

Essa questão é diferente de apenas mover um processo em execução para a tela, pois envolve a reabertura de identificadores stdin / out / err perdidos.

    
por Sparr 24.11.2010 / 02:57

2 respostas

5

Esta é uma pergunta duplicada - consulte Mover um processo já em execução para a tela , que aponta para retty , que é um auto-descrito hack horrível implementando o que eu Sempre adivinhei ser possível, mas nunca tentei realmente: ele encontra fd 0, 1 e 2 (padrão in, out e erro, respectivamente) para o processo e se liga a eles, como um parasita aberrante horrível que não deveria ser. / p>     

por 24.11.2010 / 05:11
5

Ao rejeitar o processo, você está efetivamente dizendo que deseja ignorar os SIGHUPs emitidos pelo terminal. Uma vez que você feche sua sessão (digamos, bash), esse processo passará a ser de propriedade do init. Então, quando você diz que quer voltar a ser proprietário de um processo depois de ter desistido da propriedade, está dizendo que quer se livrar de outro processo - que não está implementado e por um bom motivo. Isso simplesmente não é possível fazer bem no Linux.

    
por 24.11.2010 / 05:03

Tags