【问题标题】:Talking to daemons与守护进程对话
【发布时间】: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。

标签: c++ c linux daemon


【解决方案1】:

你有几个选择:

  1. 共享内存
  2. 管道
  3. UNIX 域套接字。

您应该根据任务的详细信息来决定哪一个最适合您。我假设您使用的是 Linux,所以 a chapter from the book "Advanced Linux Programming" on inter-process communication 会有所帮助。它也提供了代码示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    相关资源
    最近更新 更多