孤儿进程和僵尸进程的区别?怎么避免这两类进程?守护进程?
1、 一般情况下,子进程是由父进程创建,而子进程和父进程的退出是无顺序的,两者 之间都不知道谁先退出。正常情况下父进程先结束会调用wait
或者 waitpid 函数
等待子进程完成再退出,而一旦父进程不等待直接退出,则剩下的子进程会被 init(pid=1)
进程接收,成会孤儿进程。(进程树中除了 init 都会有父进程)。
2、如果子进程先退出了,父进程还未结束并且没有调用 wait
或者 waitpid 函数
获取 子进程的状态信息,则子进程残留的状态信息( task_struct
结构和少量资源信息) 会变成僵尸进程。原理是将子进程成为孤儿进程,从而其的父进程变为 init 进程
,通过 init 进程
可 以处理僵尸进程。
3、守护进程( daemon) 是指在后台运行,没有控制终端与之相连的进程。它独立于控 制终端,通常周期性地执行某种任务 。守护进程脱离于终端是为了避免进程在执行 过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打 断。
守护进程是什么?怎么实现?
- 守护进程(Daemon) 是运行在后台的一种特殊进程。它独立于控制终端并且周期性 地执行某种任务或等待处理某些发生的事件。守护进程是一种很有