O nohup aplica-se apenas a um processo filho de um processo shell, mas não a um processo filho de um processo não shell?

1

nohup é um programa externo. Como pode alterar a ação de SIGHUP por um processo filho de um processo de shell para ser "ignorar"? (em termos de alguns argumentos quando o processo filho invoca fork() e / ou execve() no programa que segue nohup?)

O nohup aplica-se apenas a um processo filho de um processo shell, mas não a um processo filho de um processo não shell?

Obrigado.

    
por Tim 26.11.2018 / 22:40

1 resposta

4

nohup se configura para ignorar o sinal SIGHUP ; veja, por exemplo, a implementação do GNU . A especificação POSIX para nohup afirma que

At the time the named utility is invoked, the SIGHUP signal shall be set to be ignored.

Como também especificado por POSIX , os processos filhos herdam sinais ignorados diferentes de SIGCHLD , portanto, qualquer processo iniciado por nohup após ser ignorado SIGHUP ignorará SIGHUP .

O tratamento de

nohup se aplica a qualquer filho de nohup , independentemente do processo pai de nohup . nohup não (nem pode) afeta o modo como os sinais são manipulados por seus pais, sejam eles shells ou não.

    
por 26.11.2018 / 22:57

Tags