Linux - dbus基础

Posted 王万林 Ben

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux - dbus基础相关的知识,希望对你有一定的参考价值。

Linux - dbus - 如何查看dbus有什么服务



前言


一、查看

方法1:gdbus是glib的一部分,它支持bash补全。

[thesre@centos8 ~]$ source /usr/share/bash-completion/completions/gdbus
[thesre@centos8 ~]$ gdbus call --system --dest <TAB><TAB>  #按两次TAB键显示可能补全的选项
com.redhat.tuned                  org.freedesktop.import1           org.freedesktop.PolicyKit1 
fi.epitest.hostap.WPASupplicant   org.freedesktop.locale1           org.freedesktop.systemd1 
fi.w1.wpa_supplicant1             org.freedesktop.login1            org.freedesktop.timedate1 
org.freedesktop.DBus              org.freedesktop.machine1          
org.freedesktop.hostname1         org.freedesktop.nm_dispatcher     
[thesre@centos8 ~]$ gdbus call --system --dest 

方法2:查看ListNames方法

为了获得可用接口的列表,DBus导出了org.freedesktop.DBus.ListNames方法。可以通过运行以下命令来调用它:

[thesre@centos8 ~]$ gdbus call --system --dest org.freedesktop.DBus \\
>            --object-path /org/freedesktop/DBus  \\
>            --method org.freedesktop.DBus.ListNames
(['org.freedesktop.DBus', ':1.43204', 'org.freedesktop.login1', 'org.freedesktop.systemd1', 'com.redhat.tuned', ':1.34232', 'org.freedesktop.PolicyKit1', ':1.34233', ':1.1', ':1.2'],)
[thesre@centos8 ~]$ 
[thesre@centos8 ~]$ gdbus call --system --dest org.freedesktop.DBus      \\
>            --object-path /org/freedesktop/DBus       \\
>            --method org.freedesktop.DBus.ListNames | \\
>     python -c 'import sys, pprint; pprint.pprint(eval(sys.stdin.read()))'
(['org.freedesktop.DBus',
  'org.freedesktop.login1',
  'org.freedesktop.systemd1',
  ':1.43205',
  'com.redhat.tuned',
  ':1.34232',
  'org.freedesktop.PolicyKit1',
  ':1.34233',
  ':1.1',
  ':1.2'],)

dbus通信图

在这里插入图片描述


总结

以上是关于Linux - dbus基础的主要内容,如果未能解决你的问题,请参考以下文章

linux 进程间通信 dbus-glib实例详解四(上) C库 dbus-glib 使用(附代码)(编写接口描述文件.xml,dbus-binding-tool工具生成绑定文件)(列集散集函数)

linux 进程间通信 dbus-glib实例详解二(上) 消息和消息总线(附代码)

linux 进程间通信 dbus-glib实例详解二(下) 消息和消息总线(ListActivatableNames和服务器的自动启动)(附代码)

linux 进程间通信 dbus-glib实例详解三(下) 数据类型和dteeth(类型签名type域)(层级结构:服务Service --> Node(对象object) 等 )(附代码)

linux 进程间通信 dbus-glib实例详解一(附代码)(d-feet工具使用)

g_bus_get_sync 返回 NULL 但 dbus_g_bus_get_private 有效