matando o processo pai não mata a criança

1

Eu tenho uma pergunta. Estudando o gerenciamento de processos observei um comportamento estranho, em um CentOS 7. Eu sei que matando um processo pai, os processos filhos são mortos também. Mas não no seguinte caso. Eu corri o comando dd, apenas por exemplo:

[root@server2 ~]# dd if=/dev/zero of=/dev/null &
[1] 1756

[root@server2 ~]# ps fax | grep -B2 dd
1737 pts/2    S      0:00         \_ su -
1741 pts/2    S      0:00             \_ -bash
1756 pts/2    R      1:18                 \_ dd if=/dev/zero of=/dev/null

Depois disso eu tentei matar (com sinal SIGKILL) o processo pai, que é o bash, mas essa ação não mata o processo dd:

[root@server2 ~]# kill -9 1741
Killed
[user@server2 ~]#

O shell termina, mas como você pode ver na saída do comando principal, o processo do dd ainda está funcionando:

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                           
1756 root      20   0  107948    612    512 R 99.9  0.1  10:06.98 dd      

Você tem alguma ideia sobre isso, por favor?

    
por intore 29.04.2018 / 09:51

1 resposta

4

Por padrão, matar um processo pai não mata os processos filhos.

Sugiro que você procure outras perguntas sobre como matar os pais e a criança usando o grupo de processos (um PID negativo).

Uma boa resposta sobre como fazer isso em detalhes pode ser encontrada em Descendente de processos

    
por 29.04.2018 / 11:38

Tags