什么是孤儿进程
父进程退出,子进程还在运行,这个时候被进程号
1的进程所收养,并由init进程对他们完成状态收集工作。init进程是领养父进程
什么是僵尸进程
僵死状态)是一个比较特殊的状态。当子讲程退出并且父进程没有读取到子进程退出的返回代码时就会产生僵死(尸)进程。僵尸进程会以终止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码。总的来说,就是只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入僵尸状态(Z状态)
僵尸进程的处理
僵尸进程进行kill是无效的,杀死父进程可以回收僵死进程
僵尸进程的避免方法
1.fork()两次,让孙子进程去完成子进程的任务
2.用wait()函数让父进程阻塞
3.使用信号量,在signal handler中调用waitpid,这样父进程就不用阻塞