Edu*_*scu 266 process kill zombie
chrome 浏览器没有响应,我试图杀死它,但该进程<defunct>并没有消失,并且没有被杀死:

什么是<defunct>进程,为什么它不会被杀死?
Pad*_*ton 248
从您的输出中我们看到一个“defunct”,这意味着该进程已完成其任务或已损坏或终止,但其子进程仍在运行或这些父进程正在监视其子进程。要终止这种进程,kill -9 PID 不起作用。您可以尝试使用此命令杀死它们,但它会一次又一次地显示此信息。
确定哪个是这个失效进程的父进程并杀死它。要知道这一点,请运行以下命令:
$ ps -ef | grep defunct
UID PID PPID C STIME TTY TIME CMD
1000 637 27872 0 Oct12 ? 00:00:04 [chrome] <defunct>
1000 1808 1777 0 Oct04 ? 00:00:00 [zeitgeist-datah] <defunct>
Run Code Online (Sandbox Code Playgroud)
然后kill -9 637 27872,再验证这个失效的进程已经过去了ps -ef | grep defunct。
jfs*_*jfs 77
标记
<defunct>的进程是死进程(所谓的“僵尸”),因为它们的父进程没有正确销毁它们而保留下来。init(8)如果父进程退出,这些进程将被销毁。
你不能杀死它,因为它已经死了。唯一剩下的是进程表中的一个条目:
在 Unix 和类 Unix 计算机操作系统上,僵尸进程或失效进程是已完成执行但在进程表中仍有条目的进程。仍需要此条目以允许父进程读取其子进程的退出状态。
除非有很多这样的过程,否则让这些过程存在并没有什么坏处。Zombie 最终会被其父级(通过调用wait(2))收割。如果原来的父init进程在它自己退出之前没有收获它,那么进程 ( pid == 1) 会在稍后的时间完成它。僵尸进程只是:
一个已经终止的进程,当它的退出状态被报告给另一个正在等待该进程终止的进程时被删除。
扩展帕丁顿的答案..
从您的输出中,我们看到一个defunct,这意味着该子进程已完成其任务或已损坏或终止。它的父进程仍在运行并且没有注意到它的死子进程。
kill -9 PID 不会工作(已经死了)。
要确定此子进程的父进程,请运行以下命令:
ps -ef | grep defunct
UID PID **PPID** C STIME TTY TIME CMD
1000 637 27872 0 Oct12 ? 00:00:04 [chrome] <defunct>
Run Code Online (Sandbox Code Playgroud)
看看谁是父母: ps ax | grep 27872
如果你愿意,你可以杀死父对象,死者就会消失。
kill -9 27872
有关更多技术推理,请参阅 Jfs 答案。
小智 5
我不小心创建<defunct>了进程
解决方案是在每个打开的终端窗口中尝试该命令fg。然后失效的进程就会消失。
| 归档时间: |
|
| 查看次数: |
499030 次 |
| 最近记录: |