Centos matando shell pai não vai matar processos filho de fundo?

3

Estou aprendendo para a certificação Red Hat. No livro afirma-se que desde o RHEL 7 (assim também a versão mais recente do Centos) que você não precisa mais usar nohup se você iniciar um processo em segundo plano, se você matar o shell pai o processo iniciado não será mais morto. p>

Eu tentei testar isso e vi dois comportamentos. Se eu corri

sleep 3600 &

então é como dito no livro e eu vejo o processo rodando mesmo se eu matar o shell pai.

Se eu corro (exemplo do livro)

dd if=/dev/zero of=/dev/null &

e eu mato o shell pai, então eu não vejo mais o processo.

Alguém pode dizer por que isso acontece?

    
por dragosb 23.10.2016 / 20:17

1 resposta

0

Acabei de repetir seus exemplos no CentOS 7 e, em ambos os casos, os processos continuaram a ser executados depois que o shell pai foi eliminado. Aqui está o que eu fiz:

Shell 1

$ sleep 3600 &
$ exit

Shell 2

$ ps auxw | grep sleep
www      22268  0.0  0.0 107896   608 ?        S    10:52   0:00 sleep 3600

Shell 3

$ dd if=/dev/zero of=/dev/null &
$ exit

Shell 1

$ ps auxw | grep dd
www      22294  101  0.0 107940   604 ?        R    10:52   0:13 dd if=/dev/zero of=/dev/null

Este é um comportamento muito bacana que eu não conhecia no RHEL 7.

Durante anos, usei screen para executar processos de longa duração em segundo plano. Eu provavelmente continuarei a usá-lo, porque é bom poder reconectar-se à saída do processo para procurar por qualquer mensagem de progresso que possa gerar.

    
por 01.04.2017 / 17:00