Ein Zombie ist schon tot. Denken Sie nicht an einen Prozess, sondern nur an einen Prozessplatz. Es gibt nichts zu töten, also wirkt kill -9 genauso gut wie kill-1, was nichts bedeutet.
Sie warten darauf, dass die Eltern sie ernten. Wenn das Elternteil aus irgendeinem Grund dies nicht tut und der Kernel nicht sagt, dass es sie nicht erzeugen soll, bleiben sie als Zombies übrig.
In traditionellen UNIX ist pid 1 init, was Kinder immer erntet. Ich denke, launchd ist gleich codiert. Wenn Sie Zombies mit PPID als 1 haben, haben Sie zu diesem Zeitpunkt so gut wie keine Optionen mehr als einen Neustart.