init não mata zumbis

3

Eu tenho alguns processos zumbis no meu sistema. Eu matei o pai desses zumbis esperando o init assumir e liberar os recursos (muitos soquetes em CLOSE_WAIT). No entanto, o init não está removendo os processos do sistema:

#ps ax
...
17051 ?        Zl   8498:24 [impalad] <defunct>
...

# ps -o ppid= -p 17051
    1

Existe uma maneira de remover os zumbis sem reiniciar?

ATUALIZAÇÃO:

Eu tentei kill -s SIGCHLD 1 . Não ajudou.

    
por facha 23.08.2016 / 09:12

1 resposta

3

Você não pode matar um processo extinto. Nas palavras de outra pessoa:

link

You cannot kill a defunct process (a.k.a zombie) as it is already dead. It doesn't take any resources so it's no big deal but if you really want it to disappear form the process table you need to have its parent procees reaping it. "pstree" should give you the process hierarchy and "kill -1 " is sometimes enough for the job.

Como o pai pid do seu processo é init (1), você não pode fazer nada, exceto a reinicialização.

link

You cannot kill a (zombie) process as it is already dead. The only reason why the system keeps zombie processes is to keep the exit status for the parent to collect. If the parent does not collect the exit status then the zombie processes will stay around forever. The only way to get rid of those zombie processes are by killing the parent. If the parent is init then you can only reboot.

Eu não posso testar isso, mas esse cara diz que você pode se livrar de um processo defunto assim:

O que é um processo de zumbis e como faço para matá-lo?

There is already an accepted answer, however: you CAN kill the zombie process. Attach with the debugger to the parent process and call waitpid function. E.g.: - let's assume that the parent has PID=100, the zombie process has PID=200

$ gdb -p 100
(gdb) call waitpid(200, 0, 0)
(gdb) quit

Esse cara teve um problema com um processo extinto que parecia continuar em execução. Eu não entendo, mas aqui está o link. Neste caso, kill -9 pid é reivindicado a funcionar.

Processos zumbis ainda vivos e funcionando bem , mas não pode ser morto?

    
por 23.08.2016 / 09:23