第一个进程保持运行而后续进程仅传递参数的最佳 IPC 方法是什么?

What is the best IPC method for first process to remain running while subsequent processes pass params only?

本文关键字:进程 最佳 参数 IPC 方法 是什么 运行 第一个      更新时间:2023-10-16

我需要开发一个进程,当本地主机上没有其他此类进程运行时,该进程启动并继续运行。然后,此进程的后续本地实例(由其他进程生成,即未分叉的子进程/父进程)只需要执行,以便以某种方式将其命令行参数传递给原始进程进行处理,然后尽快退出。

我知道我需要 IPC 来实现这一点,同时我需要将占用空间和执行速度的开销保持在最低限度,因此这排除了套接字和其他基于网络的 IPC,例如消息队列。 生成的进程需要以某种方式了解主进程。不需要跨主机进行 IPC。

我正在考虑使用命名管道,但想知道替代方案。例如,通过写入文件的共享句柄的匿名管道是否更有效?

在这种情况下,机制很重要;而不是示例中包含的语言和环境。我将在 C 或 C++ 中实现该机制。

msgrcv()msgsnd()的 MAN 页面提供了执行所需操作所需的一切。

建议阅读: 如何使用 msgrcv 以获取如何使用这些功能的示例。