僵尸进程

Q:什么是僵尸进程?

一个进程任务结束调用exit命令主动退出的时候,操作系统会释放其占用的内存、打开文件等资源。该进程已经处于非活动状态,不会执行任何的任务;但它并没有真正的被销毁,而是变成了一个僵尸进程,占据着一个Pid。只有当该进程的父进程通过系统调用(wait/waitpid)获取子进程的状态时,这个进程才会真正的结束,释放掉Pid。

所以,僵尸进程即进程已经主动退出,但还没有被父进程通过系统调用来释放Pid。

Q:如何查看僵尸进程?

1、使用top命令,可以查看系统中僵尸进程的数量

2、使用ps -aux | grep Z命令,STAT为Z的进程就是僵尸进程

Q:为什么会产生僵尸进程?

程序Bug,或者用户的一些非常用操作

Q:如何处理僵尸进程?

1、执行命令kill -s SIGCHILD <PPID>,通过父进程回收已经退出的子进程 2、杀掉父进程kill -9 <PPID> 3、重启系统

Q:父进程为1的僵尸进程?

Last updated