Você não pode matar um zumbi, já está morto. Está falando apenas uma entrada na tabela de processos antes que o processo pai execute wait(2)
para ler seu status de saída.
Em uma nota diferente, para matar o processo pai de qualquer processo (incluindo Zombie), você pode facilmente usar uma combinação de comandos ps
e kill
:
ps -p <pid> -o ppid=
fornecerá o PPID (Parent Process ID) do processo com PID (ID do processo) <pid>
.
Por exemplo, para encontrar o PPID do processo com PID 2345
:
ps -p 2345 -o ppid=
Você pode passá-lo para kill
usando a substituição de comando $()
:
kill "$(ps -p 2345 -o ppid=)"
Por outro lado, para eliminar um processo usando seu PPID, use pkill
:
pkill -P <PPID>
Por exemplo, para matar o processo com PPID 1234
:
pkill -P 1234
Além disso, a menos que seja absolutamente necessário, não use SIGKILL
( kill -9
), pois ele não permite que o processo faça nenhuma limpeza e pode resultar em efeitos indesejados.