Linux:分叉两次和守护进程(ise)之间的区别

2023-11-29

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

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

  1. 两者有什么区别?
  2. 这种场景下哪个更合适呢?
  3. 在其中选择之一时需要考虑哪些因素?

有一个微妙的区别。

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

Daemon:这适用于希望将自己与控制终端分离并作为系统守护进程在后台运行的程序。无控制终端。

方法的决定取决于当前的需求/场景。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux:分叉两次和守护进程(ise)之间的区别 的相关文章

随机推荐

  • 函数参数传递和返回

    var foo bar function return this baz baz 1 function return typeof arguments 0 foo bar 为什么这段代码会返回undefined 我会假设arguments
  • 如何将 MOVE 用于以记录为元素且其上有动态数组字段的动态数组?

    我正在使用 Delphi Rio 我的程序有很多动态数组操作 为了提高一些长数组复制的速度 我尝试使用 Move 对于基本类型 实数 整数 的一维动态数组 我可以管理 Move 的使用 但对于以记录作为其元素的动态数组 并且该记录具有另一个
  • Python根据条件分割字符串

    如果逗号前面有某个正则表达式 我想使用逗号分隔符分割字符串 考虑我的字符串格式如下的情况 一堆可能有逗号的东西 FOO REGEX 其他可能有逗号的东西 FOO REGEX 我想用逗号分割字符串 但前提是它们前面有 FOO REGEX 一堆
  • 使用 ContentFlow (coverflow) 显示数据库图像 IllegalStateException 错误

    我目前正在使用第三方图像 coverflow http www jacksasylum eu ContentFlow 来显示保存在数据库中的图像 为此 我使用 Java JPA 和 Richfaces 我已经设置了一个图像 servlet
  • 添加 Excel 格式的最有效方法 - VBA

    我有一个宏 可以将数百行数据添加到 Excel 电子表格中 我从插入每行数据的循环中调用一个过程 每次插入该数据时 我都会应用该行的格式 然而 在测试过程中 我发现当我不逐行应用格式而是一次全部应用格式时 插入所有数据的速度可以快大约 3
  • 在Python OpenCV中访问IP摄像头

    如何访问我的网络摄像机流 显示标准网络摄像头流的代码是 import cv2 import numpy as np cap cv2 VideoCapture 0 while True ret frame cap read cv2 imsho
  • 当具体类包含其他接口时如何反序列化接口集合

    我目前面临的情况是 我得到了一个无法修改的 json 文件 并且我希望生成的反序列化类对于设计目的是通用的 首先是我的界面 public interface IJobModel string ClientBaseURL get set st
  • Git 合并混乱。 diff 显示差异,merge 表示没有差异

    我开始学习使用git 我遇到了一个我不明白的情况 存储库被从svn中取出 我在树枝上jacob 379尽一切努力 host git status On branch jacob 379 nothing to commit working d
  • 如何将“expo-splash-screen”与“expo-google-fonts”一起使用?

    初始屏幕使用异步操作等待 而字体包使用 自定义挂钩 useFonts 我猜 如何让启动屏幕等待谷歌字体加载 您可以使用以下方式加载字体loadAsync from expo fonts 并管理启动画面expo splash screen i
  • Drupal 7 术语路径在哪里?

    使用 Drupal 6 中的 pathauto 和 token 模块 您可以使用如下模式创建 url 别名 termpath raw title raw 然而 Drupal 7 中的情况并非如此 我知道 D7 仍处于 alpha 阶段 但
  • Junit @Rule 如何工作?

    我想为大量代码编写测试用例 我想了解JUnit的详细信息 Rule注释功能 以便我可以使用它来编写测试用例 请提供一些好的答案或链接 通过一个简单的示例详细描述其功能 规则用于添加适用于测试类中的所有测试的附加功能 但以更通用的方式 例如
  • 无法解析 XML blob

    我在对 azure 上的 dbs 进行身份验证时遇到问题 所有详细信息都是正确的 但是当我单击 连接 时 出现以下错误 TITLE Microsoft SQL Server Management Studio Error connectin
  • 单行检查列表中至少一项是否存在于另一个列表中? [复制]

    这个问题在这里已经有答案了 假设我有一个清单a 1 2 3 我想知道其中至少有一个数字是否存在于另一个列表中 如下所示 b 4 5 6 7 8 1 换句话说 我想知道列表中是否存在 1 2 或 3b 我现在可以做类似的事情 def func
  • 如何用Python实现一个最小的AJAX服务器?

    我想为 Python 程序创建一个非常简单的基于 HTML AJAX 的 GUI 所以前端是一个 HTML 页面 通过 AJAX 与程序进行通信 你能给我一个使用 python 的服务器端的最小实现吗SimpleHTTPServer Sim
  • 旋转 UIImage 并移动

    我已经搜索了堆栈溢出太多次 也发布了一个问题 但没有成功 我需要在我的拼贴应用程序中实现一个功能 用户可以旋转 uiimage 并将其作为旋转图像移动 知道如何做吗 如果需要 我会尝试所有这些 最近两天寻找它感到沮丧 首先 我使用 CGAf
  • 如何获取前台窗口的exe路径

    我想获取活动前台窗口的可执行文件的路径 我已经有了前台窗口的处理程序 DllImport user32 dll static extern IntPtr GetForegroundWindow IntPtr handlerAppActual
  • 使用 .setPaint(gradient) 调整大小时不重新绘制

    一旦我在代码中使用渐变 在调整大小时重新绘制就不会完成 我在调整大小时会得到类似的结果 已调整大小的黑色矩形 请参阅下面链接中的图像 当我停止调整大小时 所有内容都会再次绘制 但只有那时 如果我不使用g2d setPaint gradien
  • 如何安排从 BigQuery 表导出到 Cloud Storage?

    我已在 BigQuery 中成功安排查询 并将结果保存为数据集中的表 我看到很多关于安排数据传输的信息in到 BigQuery 或 Cloud Storage 但我没有找到任何有关安排导出的信息from尚未将 BigQuery 表传输到 C
  • 无法让 Three.js EffectComposer 工作

    我想开始使用 EffectComposer 对渲染进行一些后处理 但我无法获得渲染到屏幕的最基本设置 它只是保持空白 我一定是在看什么东西 有人有想法吗
  • Linux:分叉两次和守护进程(ise)之间的区别

    我试图编写一个基本的多处理 tcp 服务器 它为每个新的 Accept 分叉一个进程 我不需要父进程等待子进程 我遇到了两种解决方案 分叉两次和守护进程 两者有什么区别 这种场景下哪个更合适呢 在其中选择之一时需要考虑哪些因素 有一个微妙的