前段时间,一哥们,去杀Linux服务器的进程,发现kill命令失灵了,怎么杀都杀不死。
然后上网查了下资料,原来是要被杀的进程,成为了僵尸进程。
僵尸进程的查看方法:
利用命令ps,可以看到有标记为Z的进程就是僵尸进程。
知道了原因,就想怎么去把这个僵尸进程干掉。网上说了两种方法,一种最简单的方法,重启服务器,相当于清理内存了。方法很简单,但是不是很实用,因为服务器,不是你一个人在用,服务器是不能随随便便重启的。第二种方法,杀掉其父进程,父进程干掉后,该僵尸进程也就消失了。
可以用 ps -ef | grep 进程ID ,找到其父进程,然后 kill -9 父进程ID
其中ps命令:
ps aux

USER:该 进程 属于哪个用户
• PID :该 进程 的ID。• %CPU:该 进程 使用掉的 CPU 资源百分比;• %MEM:该 进程 所占用的物理内存百分比;• VSZ :该 进程 使用掉的虚拟内存量 (Kbytes)• RSS :该 进程 占用的固定的内存量 (Kbytes)• TTY :该 进程 是在哪个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。• STAT:该程序目前的状态,主要的状态有:o R :该程序目前正在运作,或者是可被运作;o S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号 (signal) 唤醒。o T :该程序目前正在侦测或者是停止了;o Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态• START:该 进程被触发启动的时间;• TIME :该 进程 实际使用 CPU 运作的时间。• COMMAND:该程序的实际指令为何