使用dbus-send或dbus-monitor等工具可以或多或少地直接发出或收听现有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 :(得分:1)
使用http://vi-server.org/pub/dbus-shell-service.pl作为示例实现了自己:this question。
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