2014-02-06 88 views
1

我在UBuntu 12.04 LTS上工作。我試圖使用signalsignal並從site接收函數,但它們無法正常工作。在我的節目,我首先調用sendsignal(「mySignal)然後接收()我得到以下信息:。dbus c api示例不起作用

Sending signal with value mySignal 
Name Error(Connection ":1.95" is not allowed to own the service "test.signal.source" due to security policies in the configuration file) 

因爲我在這兩個函數代替conn = dbus_bus_get(DBUS_BUS_SYSTEM, &err);conn = dbus_bus_get(DBUS_BUS_SESSION, &err);現在是發出了一個信號,但是接收函數沒有按」看不到這個信號,即== NULL味精這是真的我也註釋掉dbus_connection_close(conn);因爲以下錯誤:

process 12612: Applications must not close shared connections - see dbus_connection_close() docs. This is a bug in the application. 

如何使它工作

+0

仍需要幫助嗎?如果你試圖描述你從根本上想要達到什麼,那會更好。另外,如果您遇到權限問題,請嘗試以root用戶身份運行該程序。 – AlastairG

回答

1

也許嘗試:

  • 在終端中運行​​。將終端輸出複製並粘貼到文件中,然後對其進行編輯以將內容導出爲環境變量。通過這樣做,您可以啓動一個新的dbus守護進程並將其公開給後續應用程序。

  • 在運行信號發送和接收示例之前,在您的終端中輸入環境設置文件。這使應用程序連接到新的會話總線。

我猜你的發送例子是推出了自己的dbus守護進程,但其他應用程序不會有一個線索守護進程是什麼,所以你需要通過一個環境變量,露出守護進程。另一個可能的原因是您的發送和接收應用程序正在使用defaule登錄會話總線,但該策略不允許它們使用。

讓我們知道這是否有效。