Como os daemons, é porque querem que qualquer mensagem de saída ou erro que possam produzir seja descartada, independentemente de como você redirecionar os fluxos de entrada e saída de um processo, ele ainda será SIGHUP'd se estiver conectado a uma sessão e essa sessão está fechada para deixar os processos em execução.
Para deixar os processos em execução, há poucas abordagens:
-
separe-os da sessão - os daemons fazem isso forçando um novo processo e, em seguida, saindo do processo original; agora o novo processo não tem pai e é adotado por
init
você também pode realizar isso usando o comando interno bash disown -
use
nohup
para impedir que o processo receba o SIGHUP quando a sessão morrer; o processo não obtém SIGHUP, não sai, seu pai morre e o init o adota -
anexa a uma sessão que não morre - use a tela
Por favor, verifique novamente o seu trabalho na declaração "Jobs não são mortos no logout quando executados com > /dev/null 2>&1 &
"