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