利用可能なD-Busサービスのリスト

利用可能なD-Busサービスのリスト

利用可能なD-Busサービスのリストのようなものはありますか?私は、NetworkManager、Rhythmbox、Skype、HALが提供するものなど、いくつかの偶然の発見をしました。

提供されたサービス/インターフェースの完全なリストを見つけることができるかどうか疑問に思います。

答え1

QT設定(短いコマンドと人間が読むことができるきちんとした出力)で、次のことを実行できます。

qdbus

セッションバスで利用可能なサービスを一覧表示し、

qdbus --system

システムバスで利用可能なサービスが一覧表示されます。


利用可能なすべての設定でdbus-send

dbus-send --print-reply --dest=org.freedesktop.DBus  /org/freedesktop/DBus org.freedesktop.DBus.ListNames

同様に、メッセージバスが指定qdbusまたは指定されていない場合、メッセージバスはログインセッションに送信されます。したがって、セッションバスで利用可能なサービスは上記にリストされています。システム全体のメッセージバスを使用するには、次を使用します。--sessiondbus
--system

dbus-send --system --print-reply --dest=org.freedesktop.DBus  /org/freedesktop/DBus org.freedesktop.DBus.ListNames

答え2

Pythonを使用すると、はるかに簡単です。

システムサービス:

import dbus
for service in dbus.SystemBus().list_names():
    print(service)

セッションサービス:

import dbus
for service in dbus.SessionBus().list_names():
    print(service)

答え3

qdbusviewerあなたの親友です。また、D-busメッセージを送信することができます:

qdbusviewerは、3つのサブパネルを持つセッションバスタブを表示します。

答え4

私は好むbusctl。他のツールとは異なり、
このツールはデフォルトでバスを使用するため、セッションマネージャと通信するにはスイッチを明示的に使用する必要があります。また、コマンドが指定されていない場合、このコマンドはデフォルトの操作です。qdbusdbus-send--system--userlist

バス制御

同じですか?

Busctlリスト - システム

または

# busctl list
NAME                                             PID PROCESS         USER             CONNECTION    UNIT                                                               SESSION DESCRIPTION
:1.0                                             162 systemd-timesyn systemd-timesync :1.0          systemd-timesyncd.service                                          -       -          
:1.1                                             157 systemd-network systemd-network  :1.1          systemd-networkd.service                                           -       -          
:1.10                                            199 phosphor-dump-m root             :1.10         obmc-dump-monitor.service                                          -       -          
:1.11                                            216 fru-device      root             :1.11         xyz.openbmc_project.FruDevice.service         
...

それぞれの木を見た後

# busctl tree :1.0
`-/org
  `-/org/freedesktop
    |-/org/freedesktop/LogControl1
    `-/org/freedesktop/timesync1

関連情報