僵尸进程
概念
僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源
危害
如果进程不调用wait / waitpid的话,那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵尸进程,将因为没有可用的进程号而导致系统不能产生新的进程. 此即为僵尸进程的危害,应当避免。
查看僵尸进程数目
top
命令行输入top命令,在task行中寻找zombie
寻找僵尸进程
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
- -A 参数列出所有进程
- -o 自定义输出字段,我们设定显示字段为stat(状态),ppid(父进程pid),pid(进程pid),cmd(命令行)这四个参数
因为状态为 z 或者 Z的进程为僵尸进程,所以我们使用grep 抓取stat 状态为zZ进程;
杀死僵尸进程
kill -9
后面加上进程的pid号,假如说杀不死,可以采用杀死父线程使之成为孤儿进程从而被init回收。