作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Linux 系统上,我有多个 C/C++ 守护进程(大约 5 个守护进程)执行不同的任务。同时,我在系统中运行多个 bash 脚本,执行一些系统相关的任务(大约 7 个脚本)。我有一个单独的C/C++-守护进程作为中央错误处理程序运行,它专门用于以正确的 GUI 形式向用户显示错误消息。错误消息可以来自任何 C/C++ 守护程序和脚本。目前,我只需要从所有 C/C++ 守护进程和脚本到中央错误处理 C/C++ 守护进程的单向通信
。
我计划使用命名管道来实现这一点。有没有更好的方法来处理这种更鲁棒并以更好的方式处理并发的通信场景?
最佳答案
您可以使用一些低级协议(protocol)、命名管道或 Unix 域套接字重新发明它,也可以仅依赖标准的 syslog。它可以立即在 C/C++ (syslog
) 和任何 shell (logger
) 中使用,并且守护进程 syslogd
的配置足以发送消息对应于程序的专用设施。
我的建议是使用您的系统上未使用的本地设施(例如local6
)并将其添加到文件/etc/syslog.conf
中:
# Pipe all local6 messages to the supervisor command
local6.* | /path/to/supervisor/command
您只需编写主管命令:它从标准输入接收行并将它们传递给您的守护进程 - 在这里您必须使用低级机制
缺点:
优点:
关于c++ - IPC : Communication of C++-program with a group of bash scripts and C++-programs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31827323/
我是一名优秀的程序员,十分优秀!