Список доступных сервисов DBus

Вы могли бы хорошо использовать alsa - Если существует a /dev/snd каталог, затем это, вероятно, случай. Кроме того, согласно Alsa-мини-практическому руководству, результатам выполнения cat /proc/asound/cards должен содержать информацию о Вашей звуковой карте.

65
22.03.2014, 17:22
4 ответа

Сессия:

dbus-send --session           \
  --dest=org.freedesktop.DBus \
  --type=method_call          \
  --print-reply               \
  /org/freedesktop/DBus       \
  org.freedesktop.DBus.ListNames

Система:

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

Можно также использовать DFeet, если Вы предпочитаете инструмент GUI.

86
27.01.2020, 19:32
  • 1
    @don-crissti, как к для списка всех контуров объектов под сервисом с dbus-send или gdbus? –  Khurshid Alam 08.01.2015, 11:06
  • 2
    @KhurshidAlam - Я добавил ответ здесь. –  don_crissti 16.05.2015, 02:06

qdbusviewer Ваш лучший друг; это позволяет Вам отправлять сообщения D-шины также:

qdbusviewer showing the Session Bus tab with three subpanels

30
27.01.2020, 19:32
  • 1
    Кажется поврежденным по состоянию на 2014. Это перечисляет сервисы, но не может отправить сообщения.. –  Pithikos 06.11.2014, 17:49
  • 2
    я не могу даже запустить его на Ubuntu 14.04. Это перестало работать с: qdbusviewer: could not exec '/usr/lib/i386-linux-gnu/qt4/bin/qdbusviewer': No such file or directory –  kasperd 29.12.2014, 01:54
  • 3
    @Pithikos d-feet работы с сегодняшнего дня. –  sherrellbc 24.10.2016, 10:37
  • 4
    @sherrellbc рассмотрите добавление d-feet как ответ для создания этого более видимым –  mivk 12.02.2017, 16:18

Путь питона - прекрасный путь.

Системные службы:

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

Сеансовые службы:

import dbus
for service in dbus.SessionBus().list_names():
    print(service)
29
27.01.2020, 19:32

gdbusявляется частью glib2 и поддерживает дополнения Bash. Вот как это использовать (в Fedora):

bash-4.4$ source /usr/share/bash-completion/completions/gdbus
bash-4.4$ gdbus call --system --dest <TAB><TAB>

Это покажет все возможные адресаты. Чтобы получить список доступных интерфейсов, DBus экспортирует метод org.freedesktop.DBus.ListNames. Вы можете вызвать его, запустив:

gdbus call --system --dest org.freedesktop.DBus \
           --object-path /org/freedesktop/DBus  \
           --method org.freedesktop.DBus.ListNames

К сожалению, это приводит к нечитаемому результату. К счастью, вывод правильный python, так что это возможно:

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()))'

Обычно я так не делаю, но это хорошая уловка, чтобы держать руку на пульсе. Я использую gdbusдля самоанализа и проверки концепций, прежде чем переходить к коду. Завершение bash экономит много времени и позволяет избежать опечаток. Было бы неплохо, чтобы gdbusотображал более приятный вывод.

16
27.01.2020, 19:32

Теги

Похожие вопросы