首页 > 解决方案 > 在同一台机器上需要 2 个进程的 IPC 解决方案

问题描述

我有一个情况,我有 2 个进程,A 和 B,都在同一台机器上。进程 A 需要向进程 B 发送一些状态信息。对于进程 B,我无法控制,除非进程 A 死亡,在进程 B 上调用一个处理程序,我可以对其进行编辑。

现在,我怎样才能可靠地将状态信息从进程 A 发送到进程 B。再次注意,我只有一个在 A 死亡时调用的钩子(处理程序)。

正如我所看到的,我不能做任何基于 IPC/Client-Server 的解决方案,因为

  1. 如果 A 是客户端,B 是服务器,A 将被拒绝连接,因为 B 上的服务器仅在 A 死亡后调用的处理程序中启动。
  2. 如果 B 是客户端而 A 是服务器,则 B 将被拒绝连接,因为 A(和服务器)已经死了。

我看到的唯一解决方案是将文件系统上的状态信息保存到众所周知的路径/位置。这样 A 可以写入它,B 可以从中读取。

还有其他想法吗?我错过了什么吗?

其他事情

两个进程都是golang。

B是A的父进程。

这需要在 Linux、Windows 和 Darwin 上运行。

标签: goipc

解决方案


推荐阅读