Semelhante a muitas perguntas anteriores, me vi executando um trabalho que eu gostaria de ter executado na tela. Fui forçado a negar o processo porque precisava desconectar. Agora que eu me reconectei, vejo que o processo ainda está em execução. Como posso "recuperar" o processo, para que eu possa ver sua saída e fornecer informações?
Essa questão é diferente de apenas mover um processo em execução para a tela, pois envolve a reabertura de identificadores perdidos stdin / out / err.
Respostas:
Esta é uma pergunta duplicada - consulte Movendo um processo já em execução para Screen , que aponta para retty , que é um hack horrível auto-descrito implementando o que eu sempre imaginei que fosse possível, mas nunca realmente tentei: encontra fd 0, 1 , e 2 (padrão de entrada, saída e erro, respectivamente) para o processo e anexa a eles, como um parasita horrível e aberrante que não deveria ser.
fonte
Ao negar o processo, você está efetivamente dizendo que deseja que ele ignore os SIGHUPs emitidos pelo terminal. Depois que você fechar sua sessão (digamos, bash), esse processo passará a ser propriedade do init. Então, quando você diz que deseja readquirir um processo depois de deixar a propriedade, está dizendo que deseja tirar a propriedade de outro processo - que não foi implementado e por boas razões. Isso simplesmente não é possível de ser feito no Linux.
fonte
disown
comando específico do bash, que, apesar do nome, na verdade não tem nada a ver com a alteração da propriedade do processo.