“松散”的进程间通信

Posted

技术标签:

【中文标题】“松散”的进程间通信【英文标题】:"Loose" inter process communication 【发布时间】:2020-06-24 17:51:17 【问题描述】:

我有两个程序(即 dwm 和 slock)。我想根据 slock 中发生的事件触发 dwm 中的函数,反之亦然。要求是两者都应该是独立的,在没有其他程序的情况下运行,并且可以协同工作。

什么是最简单和/或最好(最有效)的 IPC 解决方案/方法?

【问题讨论】:

每个程序能否发现对方的进程ID并发送信号? @Milag 是的,他们可以。 Bur 如何将有效负载附加到信号上? 一个信号可以触发另一个过程中的活动;如果你还需要一个数据块,也许可以使用共享内存或带命名管道的 R/W @Milag 共享内存不需要两个进程都运行吗? Slock 并非一直在运行。 通过期望 proc 存在与否,每个 proc 都可以尝试创建、附加或两者兼而有之,以处理任何错误 【参考方案1】:

我已经像 Milag 在 cmets 中建议的那样做到了:

一个信号可以触发另一个进程中的活动;如果你还需要一个数据块,也许可以使用共享内存或带命名管道的 R/W

【讨论】:

以上是关于“松散”的进程间通信的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统编程--进程间通信 ---管道篇

Linux进程间通信——管道

Linux进程间通信

进程间通信和线程间通信

iOS进程间通信

进程间通信