僵尸进程
定义:子进程先于父进程退出,子进程退出的时候会给父进程发送SIGCHLD信号,而父进程接收到这个信号后是忽略处理的,从而子进程的退出状态信息没有被进程回收,导致子进程变成僵尸进程。
其中子进程的退出状态信息包含哪些呢?
退出码
coredump标志位
退出信号
产生僵尸进程会产生内存泄漏的危害,泄漏的是子进程的task_struct结构体
如果需要解决僵尸进程,可以有以下的做法
1.关闭操作系统
2.关闭父进程
3.进程等待
孤儿进程
产生的原因:当父进程先于子进程退出,子进程就变成了孤儿进程
注意:没有孤儿状态,只有孤儿进程,并且孤儿进程是没有危害的。并且孤儿进程是由Init进程进行回收的
我们需要查看父子进程的对应关系需要使用的bash命令为pa -ef | grep 要查看的内容
,当写了一个代码,让父进程先退出,就能看到子进程的父进程变成了1号进程,也就是Init进程