2009-09-08 61 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。然而,這是可以改變的。