【Linux】僵尸进程,孤儿进程以及wait函数,waitpid函数(有样例,分析很详细) | 您所在的位置:网站首页 › linux中wait函数 › 【Linux】僵尸进程,孤儿进程以及wait函数,waitpid函数(有样例,分析很详细) |
本文内容: 1.僵尸进程,孤儿进程的定义,区别,产生原因,处理方法 2.wait函数,waitpid函数的分析,以及比较
背景:由于子进程的结束和父进程的运行是一个异步的过程,即父进程永远无法预测子进程什么时候结,所以就产生了孤儿进程和僵尸进程
定义: 孤儿进程:即父进程退出后,它的一个或多个子进程还在运行,那么这些子进程叫做孤儿进程 僵尸进程:如果子进程退出,但是父进程没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符pid仍然保存在系统中,那么该子进程叫做僵尸进程 区别: 孤儿进程是父进程已退出,而子进程没有退出,僵尸进程是父进程没有退出,而子进程退出了 处理方法:
1.孤儿进程将会被1号进程init进程收养,并且由init进程完成对他们的状态收集工作 2.当一个进程终止后,它的父进程需要调用wait函数(阻塞等待)或waitpid函数(非阻塞等待)获得子进程的终止状态!【父进程通过进程等待的方式,回收子进程的资源,获取子进程退出信息】
僵尸进程样例: #include #include #include #include #include #include #include #include using namespace std; int main() { pid_t pid=fork(); if(pid>0) { cout |
CopyRight 2018-2019 实验室设备网 版权所有 |