gpt4 book ai didi

c - Linux: fork 两次和守护进程(ise)之间的区别

转载 作者:太空狗 更新时间:2023-10-29 11:37:23 24 4
gpt4 key购买 nike

我试图编写一个基本的多处理 tcp 服务器,它为每个新的 accept() fork 一个进程。

我不需要父进程等待子进程。我遇到了两种解决方案——两次 fork 和守护进程。

  1. 两者有什么区别?
  2. 哪个更适合这个场景?
  3. 在其中进行选择时应考虑哪些因素?

最佳答案

有细微差别。

两次 fork :如果中间子进程已经退出并被父进程等待,则它不会成为僵尸进程。孙子也不能成为僵尸,因为它的父进程(中间子进程)已经退出,所以孙子是孤儿。孤儿(孙子)被 init 继承,如果它现在退出,系统有责任清理它。这样,父进程就无需等待收集子进程的退出状态信号,父进程也可以忙于做其他工作。这也使 child 能够长时间运行,因此时间短的 parent 无需等待那么长的时间。

守护进程:这是为那些希望从控制终端中分离出来并作为系统守护进程在后台运行的程序准备的。没有控制终端。

方法的决定取决于手头的要求/场景。

关于c - Linux: fork 两次和守护进程(ise)之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26405391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com