Linux中僵尸进程和孤儿进程详解

本文主要给大家介绍了关于Linux中僵尸进程和孤儿进程的相关内容,分享给出来供大家参考学习,下面来看看详细的介绍:

1、僵尸进程

一个子进程在其父进程没有调用wait()waitpid()的情况下退出,这个子进程就是僵尸进程。如果其父进程还存在而一直不调用wait,则该僵尸进程将无法回收,等到其父进程退出后该进程将被init回收。

Linux中僵尸进程和孤儿进程详解

运行结果

Linux中僵尸进程和孤儿进程详解

2、孤儿进程

一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对他们完成状态收集工作。

Linux中僵尸进程和孤儿进程详解

运行结果

Linux中僵尸进程和孤儿进程详解

然而子进程一直在调用,也不能被ctrl^c掉。。

3、注册函数atexit,在进程退出时调用

Linux中僵尸进程和孤儿进程详解

运行结果

Linux中僵尸进程和孤儿进程详解

由结果可见,当我们用注册函数调用fun1、fun2、fun3时它在整个进程退出时会倒着给我们打印这些函数中的内容,在最后退出时调用第一个注册函数并打印信息。

总结

相关推荐