僵尸进程和孤儿进程

  • 僵尸进程
      僵尸进程就是子进程结束运行,但是主进程没结束。因为子进程是占用资源的,比如文件描述符等等,主进程没有显式得去控制释放(wait,waitpid等有几种方式可为子进程收尸),所以这个子进程编程僵尸进程,白白占用资源。
  • 孤儿进程
      孤儿进程就是主进程结束了,子进程没有结束了,成了孤儿。成了孤儿的后,就会被Linux环境下一个init进程(pid为1)接管,控制孤儿进程结束后收回资源。

  有个方式可以避免进程僵死状态,就是fork两次(Linux系统下)。
  下图出自灵魂画师,子进程fork之后就退出,然后它fork的这个成了孤儿进程被init进程接管,就不需要担心资源不被回收了。
僵尸进程和孤儿进程