Ich habe einen lästigen Prozess (in diesem Fall einen gestrandeten Prozess, der im iPhone-Simulator laufen sollte (jetzt schon lange beendet).
97442 ?? 0:00.00 (MyProcess)
Ich habe alles versucht, was mir einfällt, einschließlich
sudo kill -9 97442
sudo kill -HUP 97442
Und doch bleibt der Prozess wie beim Raben bestehen.
In diesem Fall bedeutet das, dass ich meinen Computer neu starten muss, um weiterarbeiten zu können.
Antwort1
Wenn ein Prozess in der Prozesstabelle verbleibt, wie dies bei diesem Prozess der Fall ist, müssen Sie ihn beenden.ElternteilProzess. Suchen Sie zuerst die PID des übergeordneten Prozesses:
ps -eo 'pid,ppid,comm' | grep 97442
Dann rennen Sie kill <pid>
, egal, was ppid
dabei herauskommt. (Geben Sie ihm zunächst die Chance, sauber zu sterben.)
Das traditionelle Unix-Design hält Prozessinformationen für dieElternzum Ernten und Aufräumen, falls die übergeordneten Prozesse ausgeführt werden sollen, um die Ressourcennutzung ihrer untergeordneten Prozesse oder ihren Beendigungsstatus usw. getrusage(2)
herauszufinden .wait(2)
Wenn Eltern ihre Kinder nicht ernten, bleiben die Kinder Zombies – BIS der Elternprozess beendet wird. An diesem Punkt wird der Kernel die Kinder erneut zuordnen init(8)
.init(8)
Willeernten Sie die Kinder mit den neuen Eltern.