Czy istnieje coś takiego jak lista dostępnych usług DBus?
Natknąłem się na kilka (takich jak NetworkManager, Rhythmbox, Skype, HAL).
Zastanawiam się, czy mogę znaleźć raczej pełną listę świadczonych usług / interfejsów.
65
Sesja:
dbus-send --session \
--dest=org.freedesktop.DBus \
--type=method_call \
--print-reply \
/org/freedesktop/DBus \
org.freedesktop.DBus.ListNames
System:
dbus-send --system \
--dest=org.freedesktop.DBus \
--type=method_call \
--print-reply \
/org/freedesktop/DBus \
org.freedesktop.DBus.ListNames
Możesz także użyć DFeet, jeśli wolisz narzędzie GUI.
dbus-send
lubgdbus
?qdbusviewer
jest twoim najlepszym przyjacielem; pozwala również wysyłać wiadomości D-bus:źródło
qdbusviewer: could not exec '/usr/lib/i386-linux-gnu/qt4/bin/qdbusviewer': No such file or directory
d-feet
działa od dzisiaj.d-feet
jako odpowiedzi, aby było bardziej widoczneSposób python jest piękny sposób.
Usługi systemowe:
Usługi sesji:
źródło
pip install dbus-python
. Dostępny jest również pakiet python-dbus (nie byłem w stanie pracować w ciągu 2 minut, które próbowałem).gdbus
jest częścią glib2 i obsługuje uzupełnienia Bash. Oto jak z niego korzystać (w Fedorze):Spowoduje to wyświetlenie wszystkich możliwych miejsc docelowych. Aby uzyskać listę dostępnych interfejsów DBus eksportuje
org.freedesktop.DBus.ListNames
metodę. Możesz to nazwać, uruchamiając:Niestety prowadzi to do nieczytelnego wyniku. Na szczęście dane wyjściowe są poprawnymi pythonami, więc jest to możliwe:
Zwykle tego nie robię, ale jest fajną sztuczką, aby mieć na sobie rękaw. Używam
gdbus
do introspekcji i sprawdzania koncepcji przed przejściem do kodu. Ukończenie bashu oszczędza dużo pisania i pozwala uniknąć literówek. Byłoby miłogdbus
wyświetlać ładniejszy wynik.źródło