Dot*_*Net 2 linux zombie-process kill-process
我正在运行一个实验性的java应用程序,每次我杀死或停止应用程序时,都会创建僵尸进程.我知道僵尸并不是真正的问题,因为他们(据说)不会消耗资源.但是,我的RAM可用空间明显少于应有的空间.这是转储
ps aux | grep java
3052 8.5 0.0 0 0 ? Zl Sep24 127:24 [java] <defunct>
6644 0.9 0.0 0 0 ? Zl Sep24 13:20 [java] <defunct>
8325 0.7 0.0 0 0 ? Zl Sep24 11:01 [java] <defunct>
8954 0.7 0.0 0 0 ? Zl Sep24 11:01 [java] <defunct>
16229 1.3 0.0 0 0 ? Zl Sep24 16:57 [java] <defunct>
19222 106 0.0 0 0 ? Zl Sep24 1346:37 [java] <defunct>
Run Code Online (Sandbox Code Playgroud)
以下都不起作用:(
kill -9 PID , kill -1 PID, kill -KILL PID
Run Code Online (Sandbox Code Playgroud)
我无法重启我的机器!所以我非常欢迎任何解决方案.
wait(2)手册页告诉您:
终止但尚未等待的孩子变成了"僵尸".内核维护有关僵尸进程(PID,终止状态,资源使用信息)的最小信息集,以便允许父进程稍后执行等待以获得关于子进程的信息.只要没有通过等待从系统中删除僵尸,它就会占用内核进程表中的一个插槽,如果该表填充,则无法创建进一步的进程.如果父进程终止,那么它的"僵尸"子进程(如果有的话)被init(8)采用,它会自动执行等待删除僵尸.
因此,您必须查找僵尸的父进程ID并杀死它们.然后init会埋葬你的僵尸.为此ps -f或pstree将帮助您.
| 归档时间: |
|
| 查看次数: |
14676 次 |
| 最近记录: |