2012-04-05 108 views
2

使用諸如dbus-send或dbus-monitor之類的工具,或多或少地直接發送或監聽現有DBus服務的信號。如何從控制檯創建dbus服務?

如何從shell註冊服務和對象?期待像

1> dbus-service --session org.example.Test /Test 
    2> qdbus org.example.Test /Test org.example.Test.Call qqq 
1> qqq 
    2> qdbus org.example.Test /Test org.example.Test.Call www 
1> www 

或類似

1> dbus-service --argc=2 --session org.example.Test /Test -- /usr/bin/printf "%s Q %s\n" 
    2> qdbus org.example.Test /Test org.example.Test.Call qqq ttw 
1> qqq Q ttw 
    2> qdbus org.example.Test /Test org.example.Test.Call www 111 
1> www Q 111 
+0

有很多使用D-Bus的更簡單的方法,我不覺得在外殼中做它是有用的。 – 2012-04-05 01:32:39

回答

1

實現自己:使用this question爲例http://vi-server.org/pub/dbus-shell-service.pl

Usage: dbus-shell-service.pl service_name command_line_arguments... 
Example: 
    dbus-shell-service.pl org.example.Test /usr/bin/printf '%s Q %s\n' & 
    qdbus org.example.Test/org.vi_server.DbusShellService.Call2 s1 s2 
    s1 Q s2 
+0

[鏡像在github上](https://gist.github.com/2307606) – 2012-04-05 02:45:15