cuijpus的专栏

关注范围:Telecommunication, Mobile , Embedded Linux。好记性,不如烂笔头。

用户操作
[即时聊天] [发私信] [加为好友]
崔计平ID:cuijpus
51279次访问,排名2233(-1),好友22人,关注者49人。
做手机研发5年多,涉及app, middleware, driver等;好记性不如烂笔头,随手写些,免得忘记了。
cuijpus的文章
原创 155 篇
翻译 0 篇
转载 47 篇
评论 56 篇
cuijpus的公告
目前正在分析研究7个Linux手机平台的异同点


最近评论
qiuyu:您好,我想问一下是不是第三方开发只需LiMo的应用程序编程接口,在此基础上编程就可以了?我看了一下我得linux平台下并没有这个API的实现程序,这样的话只根据接口函数就能使用?一般情况下的话是不是得需要个库之类的文件呀?我是新手,请赐教!
yuhang111:我想还是兼容性的问题,maemo的不少组件是基于debian开发的, 所有应该更方便的在ubuntu上使用吧。当然用fedora也可以,好像虚拟机下用fedora要比ubuntu慢些吧。
wei04:请问D-BUS的C API是线程安全的么?
Liyonn8744:您好,Maemo平台的宿主Linux一定要用ubuntu的吗?用Fedora Core 6可以吗?有什么区别呢?谢谢~
SearchSun:同期待,如果有一个通过libosso封装的D-BUS来调用media player的例子就好了
文章分类
收藏
相册
常去的网站
linux mobile research圈子
存档
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 用dbus-send查看当前system bus或者session bus上面挂载了多少service.收藏

新一篇: maemo 平台中软件更新命令apt-get的帮助 | 旧一篇: 交叉编译D-BUS时遇到abstract socket的问题。

 

在Linux PC/手机启动后,dbus-daemo就启动了。

这是如果一个程序启动了,会有一个connection挂载到dbus-daemon上面的,同时维护了这个程序的service.

可以采用dbus-send命令来查看system bus或者session bus上面到底挂载了哪些service, 即,当前有哪些程序

是和dbus-daemon有关联的:

 

1 查看system bus上面挂载的service.

test@test-desktop:~$ dbus-send --system --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListActivatableNames

method return sender=org.freedesktop.DBus -> dest=:1.25 reply_serial=2
   array [
      string "org.freedesktop.DBus"
      string "net.ekiga.helper"
      string "org.freedesktop.PowerManagement"
      string "org.freedesktop.Tracker"
      string "org.freedesktop.Notifications"
      string "org.freedesktop.SystemToolsBackends.GroupsConfig"
      string "org.freedesktop.SystemToolsBackends.NTPConfig"
      string "org.freedesktop.SystemToolsBackends.NFSConfig"
      string "org.gnome.Tomboy"
      string "org.freedesktop.SystemToolsBackends.HostsConfig"
      string "org.freedesktop.SystemToolsBackends"
      string "net.ekiga.instance"
      string "org.gnome.GnomeVFS.Daemon"
      string "com.redhat.dhcp"
      string "org.freedesktop.SystemToolsBackends.IfacesConfig"
      string "org.freedesktop.SystemToolsBackends.TimeConfig"
      string "org.freedesktop.SystemToolsBackends.ServicesConfig"
      string "org.gnome.Rhythmbox"
      string "org.freedesktop.SystemToolsBackends.Platform"
      string "org.freedesktop.SystemToolsBackends.SMBConfig"
      string "org.gnome.SettingsDaemon"
      string "org.freedesktop.SystemToolsBackends.UsersConfig"
   ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 查看session bus上面挂载的service .
test@test-desktop:~$ dbus-send --session --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListActivatableNames
method return sender=org.freedesktop.DBus -> dest=:1.18 reply_serial=2
   array [
      string "org.freedesktop.DBus"
      string "net.ekiga.helper"
      string "org.freedesktop.PowerManagement"
      string "org.freedesktop.Tracker"
      string "org.freedesktop.Notifications"
      string "org.freedesktop.SystemToolsBackends.GroupsConfig"
      string "org.freedesktop.SystemToolsBackends.NTPConfig"
      string "org.freedesktop.SystemToolsBackends.NFSConfig"
      string "org.gnome.Tomboy"
      string "org.freedesktop.SystemToolsBackends.HostsConfig"
      string "org.freedesktop.SystemToolsBackends"
      string "net.ekiga.instance"
      string "org.gnome.GnomeVFS.Daemon"
      string "com.redhat.dhcp"
      string "org.freedesktop.SystemToolsBackends.IfacesConfig"
      string "org.freedesktop.SystemToolsBackends.TimeConfig"
      string "org.freedesktop.SystemToolsBackends.ServicesConfig"
      string "org.gnome.Rhythmbox"
      string "org.freedesktop.SystemToolsBackends.Platform"
      string "org.freedesktop.SystemToolsBackends.SMBConfig"
      string "org.gnome.SettingsDaemon"
      string "org.freedesktop.SystemToolsBackends.UsersConfig"
   ]

 

看看Nokia的maemo平台启动后,我们可以看有哪些后台程序在和D-BUS之间有通信:

 

更多的用法,其实就是调用org.freedesktop.Dbus提供的标准接口:

[sbox-CHINOOK_X86: ~] >  dbus-send --system --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.Introspectable.Introspect

method return sender=org.freedesktop.DBus -> dest=:1.8
   string "<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
  <interface name="org.freedesktop.DBus.Introspectable">
    <method name="Introspect">
      <arg name="data" direction="out" type="s"/>
    </method>
  </interface>
  <interface name="org.freedesktop.DBus">
    <method name="RequestName">
      <arg direction="in" type="s"/>
      <arg direction="in" type="u"/>
      <arg direction="out" type="u"/>
    </method>
    <method name="ReleaseName">
      <arg direction="in" type="s"/>
      <arg direction="out" type="u"/>
    </method>
    <method name="StartServiceByName">
      <arg direction="in" type="s"/>
      <arg direction="in" type="u"/>
      <arg direction="out" type="u"/>
    </method>
    <method name="Hello">
      <arg direction="out" type="s"/>
    </method>
    <method name="NameHasOwner">
      <arg direction="in" type="s"/>
      <arg direction="out" type="b"/>
    </method>
    <method name="ListNames">
      <arg direction="out" type="as"/>
    </method>
    <method name="ListActivatableNames">
      <arg direction="out" type="as"/>
    </method>
    <method name="AddMatch">
      <arg direction="in" type="s"/>
    </method>
    <method name="RemoveMatch">
      <arg direction="in" type="s"/>
    </method>
    <method name="GetNameOwner">
      <arg direction="in" type="s"/>
      <arg direction="out" type="s"/>
    </method>
    <method name="ListQueuedOwners">
      <arg direction="in" type="s"/>
      <arg direction="out" type="as"/>
    </method>
    <method name="GetConnectionUnixUser">
      <arg direction="in" type="s"/>
      <arg direction="out" type="u"/>
    </method>
    <method name="GetConnectionUnixProcessID">
      <arg direction="in" type="s"/>
      <arg direction="out" type="u"/>
    </method>
    <method name="GetConnectionSELinuxSecurityContext">
      <arg direction="in" type="s"/>
      <arg direction="out" type="ay"/>
    </method>
    <method name="ReloadConfig">
    </method>
    <signal name="NameOwnerChanged">
      <arg type="s"/>
      <arg type="s"/>
      <arg type="s"/>
    </signal>
    <signal name="NameLost">
      <arg type="s"/>
    </signal>
    <signal name="NameAcquired">
      <arg type="s"/>
    </signal>
  </interface>
</node>
"

 

///////////////////////////////////////////////////////////////////////////

[sbox-CHINOOK_X86: ~] >  dbus-send --system --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListNames
method return sender=org.freedesktop.DBus -> dest=:1.10
   array [
      string "org.freedesktop.DBus"
      string "com.nokia.hildon-desktop"
      string "com.nokia.SM_DIMMED_infoprint"
      string "org.gnome.GConf"
      string "com.nokia.hildon_input_method"
      string ":1.10"
      string "com.nokia.AS_DIMMED_infoprint"
      string ":1.0"
      string ":1.1"
      string ":1.2"
      string ":1.3"
      string ":1.4"
      string ":1.5"
   ]
[sbox-CHINOOK_X86: ~] >

/////////////////////////////////////////////////////////////////////////////

详细的东西多看看dbus的文档:

http://dbus.freedesktop.org/doc/dbus-specification.html

 

发表于 @ 2008年05月17日 23:17:00|评论(loading...)|编辑

新一篇: maemo 平台中软件更新命令apt-get的帮助 | 旧一篇: 交叉编译D-BUS时遇到abstract socket的问题。

评论:没有评论。

发表评论  


登录
Csdn Blog version 3.1a
Copyright © cuijpus