De man nohup :
If standard input is a terminal, redirect it from /dev/null. If standard output is a terminal, append output to
nohup.outif possible,$HOME/nohup.outotherwise. If standard error is a terminal, redirect it to standard output. To save output to FILE, usenohup COMMAND > FILE.
(completamente revisado com base nos comentários)
Ao sair de um shell ou fechar um terminal, os processos-filhos serão enviados SIGHUP (hangup, o nome origina-se do momento em que os terminais discam para o computador UNIX) para informar que o terminal não está mais conectado. Além disso, quando o processo de shell termina, os fluxos stdin, stdout e stderr do processo filho serão fechados. Geralmente isso faz com que o processo da criança morra. Geralmente isso é bom porque evita que processos sejam executados sem usuário.
A finalidade do programa nohup é manter o processo em execução mesmo depois que o shell termina e o terminal se desconecta. Como tal, direcionar sua saída para o terminal derrota completamente o propósito. Minha resposta original ( nohup COMMAND | cat ) não foi útil porque: quando o terminal está fechado, a saída do gato é fechada e assim o gato morre, o que quebra o tubo e envia um SIGPIPE para o processo nohup fazendo com que ele morra. Eu havia respondido a pergunta sem pensar no propósito.
Para atingir seu objetivo, execute nohup COMMAND > FILE para selecionar o nome do arquivo para direcionar a saída. Em seguida, use tail -f FILE para assistir a saída em um terminal.
Da mesma forma, pode-se usar a seguinte construção shell: COMMAND >FILE 2>&1 </dev/null & para executar um comando cujos fluxos stdio não estejam conectados ao terminal e possam continuar em execução após o terminal ser fechado. Além disso, em zsh, execute o disown embutido no shell para informar ao zsh para deixar o processo em vez de eliminá-lo quando o shell terminar.