Ao fazer isso após uma discussão prolongada com um colega de trabalho, eu realmente gostaria de um esclarecimento aqui.
Inicio um processo em segundo plano, anexando " &" à linha de comando ou parando CTRL-Ze reiniciando em segundo plano com " bg". Então eu saio.
O que acontece?
Tínhamos certeza de que deveria ter sido morto por um SIGHUP, mas isso não aconteceu; ao fazer login novamente, o processo estava em execução feliz e pstreemostrou que foi "adotado" por init.
Este é o comportamento esperado?
Mas então, se for, qual é o nohuppropósito do comando? Parece que o processo não será morto de qualquer maneira, com ou sem ...
Editar 1
Mais alguns detalhes:
- O comando foi iniciado a partir de uma sessão SSH, não a partir do console físico.
- O comando foi lançado sem
nohupe / ou&; foi então suspensoCTRL-Ze retomado em segundo plano combg. - A sessão ssh não caiu. Houve um logout real ("
exit" comando). - O processo foi uma
scpoperação de cópia de arquivo. - Ao fazer login novamente,
pstreemostrou o processo em execução e sendo filho deinit.
Editar 2
Para declarar a questão com mais clareza: colocar um processo em segundo plano (usando &ou bg) fará com que seja ignorado SIGHUP, assim como o nohupcomando?
Editar 3
Tentei enviar manualmente um SIGHUPpara scp: ele saiu, por isso definitivamente não ignora o sinal.
Depois, tentei novamente iniciá-lo, colocando-o em segundo plano e efetuando logoff: ele foi "adotado" inite continuou sendo executado, e eu o encontrei lá ao fazer logon novamente.
Estou bastante confuso agora. Parece que não SIGHUPfoi enviado para o logoff.
1>/dev/null 2>&1por exemplo, para o bash etc.?