go - 在同一台机器上需要 2 个进程的 IPC 解决方案
问题描述
我有一个情况,我有 2 个进程,A 和 B,都在同一台机器上。进程 A 需要向进程 B 发送一些状态信息。对于进程 B,我无法控制,除非进程 A 死亡,在进程 B 上调用一个处理程序,我可以对其进行编辑。
现在,我怎样才能可靠地将状态信息从进程 A 发送到进程 B。再次注意,我只有一个在 A 死亡时调用的钩子(处理程序)。
正如我所看到的,我不能做任何基于 IPC/Client-Server 的解决方案,因为
- 如果 A 是客户端,B 是服务器,A 将被拒绝连接,因为 B 上的服务器仅在 A 死亡后调用的处理程序中启动。
- 如果 B 是客户端而 A 是服务器,则 B 将被拒绝连接,因为 A(和服务器)已经死了。
我看到的唯一解决方案是将文件系统上的状态信息保存到众所周知的路径/位置。这样 A 可以写入它,B 可以从中读取。
还有其他想法吗?我错过了什么吗?
其他事情
两个进程都是golang。
B是A的父进程。
这需要在 Linux、Windows 和 Darwin 上运行。
解决方案
推荐阅读
- nativescript-angular - 带有角度的nativescript中的搜索过滤器和列表视图
- dask - dask: astype() 得到了一个意外的关键字参数“错误”
- android - null 不能转换为非 null 类型 kotlin.collections.List - kotlin
- laravel - 如何检查 laravel 计数结果是否为空
- javascript - VideoJS - 暂停未聚焦的视频元素的流媒体
- javascript - 如何在 HTML 中导出选择标记的选定值
- r - 将 .maf 文件另存为表格
- javascript - 更改触摸延迟:fabricjs 中的长按
- java - xyzMiddle——我认为我没有遗漏任何东西,那么这个错误是什么意思?
- lotus-notes - 如何在文档中水平和垂直对齐按钮?