Linux中的特殊进程
- 在
Linux/Unix
中,通过父进程创建子进程僵尸进程
- 一个进程使用了
fork
创建了子进程,如果子进程终止进入僵死状态,而父进程并没有调用wait
或者waitpid
获取子进程的状态信息,那么子进程仍留下一个数据结构保存在系统中,这种进程称为僵尸进程 - 僵尸进程会占用一定的内存空间,还占用了进程号,所以一定要避免大量的僵尸进程产生。有很多方法可以避免僵尸进程
孤儿进程
- 父进程退出,而它的子进程仍在运行,那么这些子进程就会成为孤儿进程。孤儿进程会被
init进程
(进程号为1)收养,并由init进程
对它们完成状态收集工作 init进程
会循环调用wait
这些孤儿进程,所以,孤儿进程没有什么危害守护进程
- 它是运行在后台的一种特殊进程。它独立于控制终端并周期性执行某种任务或等待处理某些事件
- 守护进程的父进程是
init进程
,因为其父进程已经故意被终止掉了 - 守护进程相对于普通的孤儿进程需要做一些特殊处理