O processo de zumbis não pode ser removido ou eliminado [duplicado]

2

Eu tenho um processo de zumbis que se recusa a ser removido, tentei killall -9 1913 e pkill sem efeito. Qualquer ajuda seria muito apreciada.Running Ubuntu 12.04.2 LTS. Obrigado.

aruna@aruna-desktop:~$ ps -aux | grep Z
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
aruna     1913  0.0  0.0      0     0 ?        Z    12:07   0:00 [lightdm-session] <defunct>
    
por Aruna Hewapathirane 06.07.2013 / 19:58

2 respostas

6

Parece que a causa deste processo zumbi é um bug descrito aqui .

Livrando-se dos processos zumbis:

Você não pode matar processos zumbis, pois pode matar processos normais com o sinal SIGKILL - processos zumbis já estão mortos. Lembre-se de que você não precisa se livrar de processos de zumbis, a menos que tenha uma grande quantidade em seu sistema - alguns zumbis são inofensivos. No entanto, existem algumas maneiras de se livrar de processos zumbis.

Uma maneira é enviar o sinal SIGCHLD para o processo pai. Este sinal diz ao processo pai para executar a chamada do sistema wait () e limpar seus filhos zumbis. Envie o sinal com o comando kill, substituindo pid no comando abaixo pelo PID do processo pai:

kill -s SIGCHLD pid

No entanto, se o processo pai não estiver programado corretamente e estiver ignorando os sinais SIGCHLD, isso não ajudará. Você terá que matar ou fechar o processo pai dos zumbis. Quando o processo que criou os zumbis termina, o init herda os processos zumbis e se torna seu novo pai. (o init é o primeiro processo iniciado no Linux durante a inicialização e é designado ao PID 1.) O init executa periodicamente a chamada do sistema wait () para limpar seus filhos zumbis, portanto o init fará com que os zumbis trabalhem rapidamente. Você pode reiniciar o processo pai depois de fechá-lo.

Se um processo pai continuar criando zumbis, ele deve ser corrigido para que ele chame wait () para colher seus filhos zumbis. Registre um relatório de bug se um programa em seu sistema continuar criando zumbis.

Você pode encontrar o ID do processo pai quando usar a opção l com ps que é ps -l , ele será exibido em PID e o processo filho será exibido em PPID

Você também pode ver a árvore de processos usando o comando pstree .

    
por 06.07.2013 / 20:06
0

Bem, eu teria dito "você não pode fazer isso" antes de usar o no Google pergunta stackoverflow . Parece que você pode usar gdb para chamar a chamada do sistema waitpid() no processo pai do processo zumbi. Bom truque.

Meu conselho é não fazer isso: o que quer que seja "lightdm", ele provavelmente limpa de vez em quando processos filhos excluídos, ou talvez assuma que sim. Se você fizer o waitpid() com gdb , poderá aumentar a lightdm .

    
por 06.07.2013 / 20:11

Tags