fork+exec 会造成僵尸/僵死进程吗。

fork+exec 后,父进程需要 wait 子进程退出吗?
fork+exec 后,如果父进程没有 wait 子进程退出,子进程退出后,会变成僵尸/僵死进程吗,为什么?

阅读 2.3k
2 个回答

需要。会变成僵尸进程,跟fork后是否exec没有关系,exec不会改变进程的父子关系

新手上路,请多包涵

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

  僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进