O que significa <defunct> na saída de ps?


15

Eu havia emitido o ps -ef|grep javacomando e esta é uma das entradas que recebi:

subhrcho   875   803  0 Jan23 pts/5    00:02:27 [java] <defunct>

O que está <defunct>implicando aqui? Em que estado esse processo é aquele com PID = 875 pol?

Respostas:


16

Na página de manual do ps :

Processos marcados <defunct>são processos mortos (os chamados "zumbis") que permanecem porque seus pais não os destruíram corretamente. Esses processos serão destruídos pelo init (8) se o processo pai sair.


qual é o contrato entre um processo pai e um processo filho para destruição do processo filho? Eu pensei que é dever do processo filho notificar os pais de que ele está sendo destruído?
24713 Geek

@ Geek O kernel destrói o processo filho e notifica o pai. A criança apenas liga _exitou morre de um sinal. Quando o kernel destrói um processo, tudo o que resta é uma entrada na tabela de processos, que desaparece quando o pai (ou processo 1, para órfãos) chama wait.
Gilles 'SO- stop be evil'

2
@Giles O que significa quando a página de manual diz que o pai não destruiu adequadamente o processo filho? pai não ligou esperar?
Geek
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.