前段时间,一哥们,去杀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
:该程序的实际指令为何