我需要开发一个在本地主机上没有运行其他此类进程时启动并继续运行的进程。此过程的后续本地实例(由其他进程生成,即不是分叉的子/父)然后需要仅以某种方式执行将其命令行参数传递给原始进程以进行处理,然后尽快退出。
我知道我需要IPC来实现这一点,而我需要将脚印和执行速度的开销保持在最低限度,因此这排除了套接字和其他基于网络的IPC,例如消息队列。生成的进程需要以某种方式知道主进程。跨主机不需要IPC。
我正在考虑使用命名管道,但想知道替代方案。例如,通过写入文件的共享句柄的匿名管道会更有效吗?
在这种情况下,机制很重要;不是示例中包含的语言和环境。我将在C或C ++中实现该机制。
msgrcv()
和msgsnd()
的MAN页面提供了执行所需操作所需的一切信息。
建议阅读:how to use msgrcv以获取如何使用这些功能的示例。