【发布时间】:2012-06-21 17:30:37
【问题描述】:
我最近看到了一些可以作为守护进程启动的程序(例如 linphonecsh),但也提供了第二种调用方法,可以与正在运行的守护进程交换信息。在 linpohone 情况下,带有一组参数的 linephonecsh 会启动守护进程,但如果使用一组不同的参数调用,它可以查询守护进程的状态(通话进行中、通话持续时间、挂断、退出等)。
所以,由于我需要编写一个可以运行任何一种方式的应用程序,应用程序或守护程序,我一直在想如何实现这个巧妙的技巧。我想 UNIX 域套接字可以像命名的进程间管道一样工作。或许是D-bus?
在哪里可以看到一个很好的 C/C++ 示例?
征求任何建议和替代方法。
【问题讨论】:
-
看看boost's IPC stuff。我自己只使用过普通的旧命名管道,因为它们很容易使用而且我很懒。
-
这完全取决于使用模式。对于丰富的命令/响应协议,管道或套接字就可以了。对于繁重的数据交换,共享内存。对于像“重新加载配置”或“立即死亡”这样非常简单的事情,信号就可以了。
-
您也可以考虑使用 D-Bus 或 SNMP
-
如果您真的想安全地与守护进程对话,我建议您获取一份 DIII。
-
对不起,@Ed,但是什么是 dlll(3 ells?)。谷歌查找得到了各种无用的答案。这是 linux,而不是 windows,以防万一您指的是 dll。