2009-09-08 67 views
1

我正在为Linux/Windows编写一个C++后台/服务器应用程序。有没有一个标准的控制/分析/报告服务,我应该用它来以标准化的方式公开我的应用程序的当前状态?C++:状态和控制模式

如果不是,那么用什么样的模式(或库)来暴露这种数据和控制?

具体而言,我要公开的以下数据:

  1. 相对“部件”(其中使用/部件被用户定义)
  2. 任何错误/故障
  3. 记忆的“使用量”, CPU,其他杂项工艺数据
  4. 方法/类执行配置文件
    1. 平均时间在方法花费/类
    2. 总要求

我要揭露以下控制机制

  1. 启动,停止,重启,重装X ...(commandesque控制)
  2. 参数整定
+0

揭露什么?该应用听起来像一个守护进程或服务,但你期望消费你想要公开的输出?特定的客户端应用程序脚本?系统总线,以便任何程序可以对事件做出反应? – Duck 2009-09-08 22:37:00

+0

外部应用程序将消耗事件。 – jameszhao00 2009-09-08 23:42:09

回答

2

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

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

NetworkManager也使用dbus进行状态和控制。

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

编辑:我刚刚阅读了一些关于暴发户,它确实有一个dbus interface for job control。然而,这是可以改变的。