Понимание выходов qdbus
Я хотел бы узнать больше о DBus в Linux. После выполнения qbus
на моем терминале в Ubuntu 16.04 я вижу:
:1.0
com.ubuntu.Upstart
:1.1
:1.11
org.freedesktop.PowerManagement
org.xfce.PowerManager
:1.12
:1.13
:1.15
:1.16
ca.desrt.dconf
...
Что это :1.0
имею в виду? и почему я вижу такое число в несколько строк? Что я знаю из руководства (--help
), то com.ubuntu.Upstart
относится к названию сервиса. Поскольку, с 0 аргументами, qdbus выведет список сервисов, доступных на шине. Итак, если я бегу qdbus com.ubuntu.Upstart
, он возвращает:
/
/com
/com/ubuntu
/com/ubuntu/Upstart
/com/ubuntu/Upstart/jobs
/com/ubuntu/Upstart/jobs/at_2dspi2_2dregistryd
/com/ubuntu/Upstart/jobs/dbus
...
Мой гость в том, что вышеуказанный путь - это объект DBus, который не может быть найден в файловой системе. Но что я могу интерпретировать более подробно об этих объектах? Так как мы можем создать несколько автобусов. Мой последний вопрос: как мы можем увидеть список всех доступных шин в системе?
Благодарю.
1 ответ
С https://dbus.freedesktop.org/doc/dbus-tutorial.html
Когда каждое приложение подключается к демону шины, демон немедленно присваивает ему имя, называемое уникальным именем подключения. Уникальное имя начинается с символа ":" (двоеточие). Эти имена никогда не используются повторно в течение жизни демона шины, то есть вы знаете, что данное имя всегда будет ссылаться на одно и то же приложение. Примером уникального имени может быть:34-907. Числа после двоеточия не имеют никакого значения, кроме их уникальности.
И чуть дальше
Приложения могут попросить иметь дополнительные известные имена. Например, вы можете написать спецификацию для определения имени с именем com.mycompany.TextEditor. Ваше определение может указывать, что для владения этим именем приложение должно иметь объект по пути /com/mycompany/TextFileManager, поддерживающий интерфейс org.freedesktop.FileHandler.
Так что что-то вроде:1.123 - это просто уникальное имя, но на него также можно ссылаться под читабельным именем где-то в списке.