O fato de um processo ser "deserdado" tem apenas um significado para o shell interativo que criou esse processo. Isso significa que o shell não inclui (mais) o processo em sua tabela de jobs, e que SIGHUP não será enviado para este processo quando o shell sair. Não está realmente relacionado com as suas perguntas.
Sobre o que acontece com as saídas que são enviadas para um terminal virtual excluído: Eu mesmo fiz alguns testes e observei que /dev/pts/x
dispositivos não estão acessíveis e não serão alocados novamente até que todos os descritores de arquivos que apontam para eles foram fechadas. Portanto, não vejo um motivo pelo qual as gravações em um terminal excluído sejam armazenadas. Eu acho que isso nem é definido pelo POSIX.
Sobre pegar a saída de algum processo que grava em um terminal, não acho que seja possível, mesmo quando o terminal ainda está ativo¹. Tudo o que você pode fazer é pegar a entrada direta no terminal (ou seja, pressionamentos de teclas ou pressionamentos de tecla simulados pela parte principal de um arquivo). Se os processos leiam em stdin o que está escrito em seus terminais, isso levaria a um loop self-io para a maioria dos processos.
Sobre a última observação sobre a finalização do processo, eu realmente não sei o que está acontecendo, mas suspeito comportamentos bastante estranhos com sinais (SIGTTOU, SIGTTIN, SIGHUP ou outros) relacionados ao estado de primeiro plano / plano de fundo dos grupos de processos, quando o líder da sessão sai (por exemplo, su
, no caso que você mencionou).
Responda ao Editar: Não, no que diz respeito à saída, nada muda quando um processo é rejeitado: ele ainda está anexado ao seu terminal de controle (a menos que ele tenha se separado já como daemons). Você pode ver isso usando ps
. No entanto, você não poderá mais usar os comandos fg
/ bg
/ jobs
fornecidos pelo shell para esse processo. Isso significa que pode ser difícil alimentá-lo com a entrada do terminal (requer estar no grupo de processos em primeiro plano).
-
1. a menos que o processo esteja disposto ou sequestrado com algumas ferramentas de depuração (veja os comentários acima).