사용 가능한 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는 세 개의 하위 패널이 있는 세션 버스 탭을 표시합니다.

답변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

관련 정보