Talvez não diretamente do tty, mas este processo tem que usar o write
syscall. Você pode usar strace
para capturar todas as chamadas de gravação.
sudo strace -e t=write -s 6000 -p your-process-id 2>logfile
Você terá coisas assim, que podem precisar de mais análise:
write(1, "191\n", 4) = 4
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=9916, si_uid=1001, si_status=0, si_utime=0, si_stime=0} ---
write(1, "21021\n", 6) = 6
write(1, "14728\n", 6) = 6
write(1, "13291\n", 6) = 6
write(1, "20372\n", 6) = 6
Se o seu programa gravar em outros arquivos, você também verá isso na saída. Isso pode ser chato. Ou que eventualmente poderia ser uma enorme quantidade de dados. O descritor de arquivo usado é provavelmente 1. Você pode grep "^ write.1"
sudo strace -e t=write -s 6000 -p your-process-id 2>&1 | grep ^write.1 >logfile
Da próxima vez, tente executar o comando com script
. Ele pega todos os dados gravados no tty.
script -c "program and args" logfile