Processes marked defunct are dead processes (so-called "zombies") that remain because their parent has not destroyed them properly.
De forma normal quando um processo termina sua execução com sucesso, ele libera os recursos alocados, desocupa a memória e avisa que “terminou” ao processo que lhe deu origem (processo pai).
Neste momento, o processo pai deve fazer a leitura do estado final do processo do filho que terminou.
Quando a leitura termina de ser executada, o processo filho (que terminou) é removido da memória e da tabela de processos.
A seqüência de operações acima é muito rápida.
Os processos zumbis aparecem quando o processo pai, por alguma razão, não consegue ler o estado do processo filho.
Neste caso, o processo filho fica aguardando o processo pai indefinidamente pela leitura do status do processo pai.
Então como conseqüência, o processo filho não é removido da memória nem da tabela de processos, embora não esteja mais executando.
kill -s SIGCHLD ^ppid^
Data | Versão | Base/Alteração | Autor |
---|---|---|---|
6-abr-2020 | 1.0 | Man e ref | CH4172 |
Anotação:1056, última modificação:7-Apr-2020, tema:UnixLinux