Para que um processo sobreviva à saída de seu shell pai, o que condições necessárias e suficientes o processo precisa atender?
Especificamente considerando sinais, quais sinais devem ser ignorados por o processo ou não enviado para o processo?
SIGHUP, SIGTERM?
Mas nohup
faz um processo ignorar apenas SIGHUP, não SIGTERM? ( disown
parece evitar que o shell pai envie qualquer sinal para o
processo)
Sinais gerados pelo terminal, como SIGINT, SIGQUIT, SIGTSTP, SIGTTIN, SIGTTOU?
Mas disown
e &
(segundo plano) não desconectam um processo de seu terminal de controle. ( nohup
pode desconectar um processo
do seu terminal de controle).
Além dos sinais, existem outras condições necessárias em outros aspectos além dos sinais?
Como você faz um processo sobreviver à saída de seu shell pai, dadas as condições acima?
A tarefa de fazer um processo sobreviver à saída de seu shell pai é a mesma que a tarefa de alterar o pai do processo?
No bash shell e nos utilitários básicos (por exemplo, coreutils), são disown
e
nohup
as únicas duas maneiras de alterar o processo de shell pai de um
processo? A mudança de parentesco acontece quando o shell sai?