Ubuntu中产生zombie进程让人很懊恼啊。Windows中在任务管理器里直接找到无响应的进程并结束他就行了,但是ubuntu中需要用命令去解决。
System information as of Wed May 28 16:07:18 CST 2014
System load: 0.28 Processes: 205
Usage of /home: 1.2% of 72.15GB Users logged in: 1
Memory usage: 14% IP address for eth0: 192.168.2.113
Swap usage: 0%
=> There is 1 zombie process.
Graph this data and manage this system at:
https://landscape.canonical.com/
可利用命令 ps aux | grep 'Z' 来找到僵尸进程,列出的结果同时也将grep列了出来,这个不用管他。
vito@vito-Lenovo-G460:~$ ps aux | grep 'Z'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
vito 25593 0.0 0.0 0 0 ? Z 16:03 0:00 [lightdm-session] <defunct>
vito 28091 0.0 0.0 5836 820 pts/2 S+ 16:08 0:00 grep --color=auto Z
找到了僵尸进程是不够的,直接kill这个僵尸进程并不能解决问题,必须去终结这个僵尸进程的父进程。但是他的父进程是谁呢?可使用命令 pstree -p -s PID来寻找编号为PID进程也就是僵尸进程的父级进程。
vito@vito-Lenovo-G460:~$ pstree -p -s 25593
init(1)───lightdm(1058)───lightdm(25446)───gnome-session(25566)───lightdm-session(25593)
现在利用 kill PID 命令来杀死他就行了。
但是这里有个问题,就像上面演示的例子,僵尸进程的父进程是gnome-session,终结他会注销系统。