僵尸进程
Last updated
Last updated
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的僵尸进程?