Isso não é possível sem um depurador.
A saída padrão e o erro padrão do seu programa estão indo para o lado escravo de um pseudo-terminal cujo lado mestre foi fechado. Não há como evitar medidas extremas, como depurar o processo e interceptar chamadas do sistema, para acessar sua saída.
Estas são as semânticas dos terminais.
Se você desligar a sessão do terminal (ou seja, desligar um dispositivo serial do terminal real, sair de uma sessão de login em um dispositivo de terminal virtual do kernel, desligue o lado mestre de um pseudo-terminal como usado pelos terminais virtuais SSH / user-space / TELNET / rlogin / emuladores de terminais X11) os descritores de arquivos abertos para processos que ainda fazem referência a esse terminal são destinados a não causar E / S nem estarem conectados a mais nada. É a abordagem Unix para combater programas de cavalo de Tróia que costumavam esperar para abrir descritores de arquivos para dispositivos de terminal e usá-los para apresentar prompts de login falsos para o próximo usuário do terminal.
Há muito tempo, programas como tmux
, GNU Screen, mosh ou console-terminal-emulator
que fica segurando o lado mestre de um pseudo-terminal aberto, emula a exibição e entrada de um terminal e permite processos cliente / realizador desconectáveis e reconectáveis (isto é, as partes "cliente" de tmux
e GNU Screen ; mosh clientes ou console-fb-realizer
, console-termio-realizer
, ou alguns outros, para renderizar isso em dispositivos reais.
Portanto, use tmux
, GNU Screen, mosh, um terminal virtual de espaço de usuário do conjunto de ferramentas do nose, ou algum outro sistema, se você quiser reconectabilidade.
Leitura adicional
- pty . Manual de Interfaces de Kernel do NetBSD . 2013-11-13.
-
revoke
. Manual de Chamada de Sistema do FreeBSD . 2016-01-25. -
vhangup
. Linux Programmer's Manual . Páginas do Manual Debian. 2016-03-15. - Daniel J. Bernstein em TTYs no Unix . Respostas frequentemente dadas.
- Jonathan de Boyne Pollard. Terminais virtuais de espaço do usuário . Guia nosh . Softwares.