Qual o estado que um processo deve obter do processo pai para se tornar um zumbi?
sobes.tech IA
Resposta da IA
O processo torna-se um zumbi ou um "processo fantasma" quando termina a sua execução (passa para o estado EXIT_ZOMBIE), mas a entrada sobre ele na tabela de processos ainda existe, esperando que o seu processo pai leia o seu estado de finalização através da chamada ao sistema wait() ou waitpid(). Até esse momento, ocupa recursos mínimos (praticamente apenas a entrada na tabela de processos), mas não liberta completamente os recursos associados.
Na tabela de processos, tal processo geralmente é exibido com o indicador <defunct>.
# Exemplo de saída do comando ps, mostrando um processo zumbi
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
...
someuser 1234 0.0 0.0 0 0 pts/0 Z+ 10:00 0:00 [defunct_process]
...
Para que o processo zumbi desapareça, o processo pai deve chamar wait() ou waitpid(). Se o processo pai terminar antes de ler o estado dos seus filhos zumbi, estes filhos passam a ser filhos do processo init (com ID 1), que chama automaticamente wait() para os seus processos filhos, eliminando assim os zumbis.
Assim, o estado principal que um processo recebe do processo pai para se tornar zumbi é o estado de finalização, que o pai ainda não processou através das chamadas wait*.