1

我正在为 Linux/Windows 编写 C++ 后台/服务器应用程序。我应该使用标准的控制/分析/报告服务以标准化的方式公开我的应用程序的当前状态吗?

如果不是,那么用于公开此类数据和控制的好的模式(或库)是什么?

具体来说,我想公开以下数据:

  1. “组件”的相对“使用”(其中使用/组件是用户定义的)
  2. 任何错误/故障
  3. 内存、CPU、其他杂项过程数据
  4. 方法/类执行配置文件
    1. 在方法/类中花费的平均时间
    2. 总来电

我想公开以下控制机制

  1. 启动、停止、重新启动、重新加载 X...(命令式控制)
  2. 参数调优
4

1 回答 1

2

许多 Linux 系统现在都有用于这类东西的dbus 。守护进程在系统总线上运行并提供信息和控制接口。桌面应用程序通过会话总线相互通信。

例如,bluez bluetoothd 守护进程使用 dbus 提供有关蓝牙设备和服务的信息,以及控制这些设备的控制接口。

NetworkManager也将 dbus 用于状态和控制目的。

但是,启动和停止是通常在实际应用程序本身之外的功能。也许正确的架构是让某些服务监督框架(upstart、runit...)提供一个 dbus 接口来控制服务。也就是说,dbus 本身可以用于按需启动服务,但它实际上并不意味着服务监督。有关更多信息,请参阅

编辑:我刚刚阅读了一些关于新贵的文章,它确实有一个用于作业控制的 dbus 接口。但是,它可能会发生变化。

于 2009-09-09T03:10:02.563 回答