如何在Mac上杀死僵尸进程


13

如何使用终端在Mac上杀死僵尸进程或找到其父进程?



3
@soandos不是重复的,因为该主题与僵尸无关。这些kill信号均不适用于僵尸IIRC。我以前曾经发生过这种情况。
丹尼尔·贝克

通常,如果已知父进程,则可以杀死僵尸,但这也需要杀死僵尸,这并不总是一个令人愉快的选择。因此,我想知道是否还有其他解决方案。
eFrane

Answers:


16

Hack Saw说:

可悲的是,似乎僵尸杀人是所有关于杀死父母,如果父母是/ sbin目录/ launchd的,你只能重启杀死它。

杀死它将是一个非常糟糕的主意launchd,但是您可以将其告知HUP。

尝试 sudo kill -s HUP 1

这将导致launchd重新初始化而不重新启动。过去这对我有用(删除僵尸条目)。


3

可悲的是,似乎僵尸杀人是所有关于杀死父母,如果父母是/ sbin目录/ launchd的,你只能重启杀死它。

我正在通过使用Xcode来获取僵尸,并停止模拟器,并将僵尸交给我自己的个人/ sbin / launchd,但我注销后并没有消失

ps -xo pid,ppid,stat,command将向您显示您的进程,其父ID在第二栏中。


1

僵尸进程已经死亡,无法杀死。当父流程死亡时,应自动将其从流程表中删除。

它们不会降低计算机的速度,您可以将它们保留在此处(它们只是进程表中的条目)。

进程数量上限(您可以使用进行检查sysctl kern.maxproc),而僵尸进程会减少进程数(因为计数在内)。

如果达到此限制,则将无法创建新进程,并且将被迫重新启动。


“应删除”,但并非总是如此。Xcode对于离开僵尸进程很可怕,即使Xcode死亡/被退出/被杀死,它们也不会被清理。
JRG-Developer 2013年

@ JRG-Developer我同意,但它们不是问题。他们不消耗任何资源。
Matteo

2
实际上,当创建了太多的东西并且fork无法启动任何新进程而您被迫重新启动时,这是一个问题。
亚当(

2
当您要重新启动崩溃的进程并再次使用它时,它们是一个问题,但是如果不重新启动就无法解决。
MarcusJ 2014年

4
当某个应用进入该状态时,您将无法重新启动它,直到清除了旧条目。它不使用任何资源,但是表的污染阻止了新实例的启动,因此您被阻塞,直到重新启动。
乔治
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.