Yanıtlar:
Oturum, toplantı, celse:
dbus-send --session \
--dest=org.freedesktop.DBus \
--type=method_call \
--print-reply \
/org/freedesktop/DBus \
org.freedesktop.DBus.ListNames
Sistem:
dbus-send --system \
--dest=org.freedesktop.DBus \
--type=method_call \
--print-reply \
/org/freedesktop/DBus \
org.freedesktop.DBus.ListNames
Bir GUI aracı tercih ediyorsanız DFeet'i de kullanabilirsiniz .
qdbusviewer
senin en iyi arkadaşın; D-bus mesajlarını da göndermenizi sağlar:
qdbusviewer: could not exec '/usr/lib/i386-linux-gnu/qt4/bin/qdbusviewer': No such file or directory
d-feet
bugün itibariyle çalışıyor.
d-feet
daha görünür hale getirmek için bir cevap olarak eklemeyi düşünün
Python yolu güzel yoludur.
Sistem servisleri:
import dbus
for service in dbus.SystemBus().list_names():
print(service)
Oturum hizmetleri:
import dbus
for service in dbus.SessionBus().list_names():
print(service)
pip install dbus-python
. Python-dbus paketi de var (denedim 2 dakika içinde çalışmaya başlayamadım).
gdbus
glib2'nin bir parçasıdır ve Bash tamamlamalarını destekler. İşte nasıl kullanılacağı (Fedora'da):
bash-4.4$ source /usr/share/bash-completion/completions/gdbus
bash-4.4$ gdbus call --system --dest <TAB><TAB>
Bu, olası tüm varış noktalarını gösterecektir. Kullanılabilir arayüzlerin bir listesini almak için DBus org.freedesktop.DBus.ListNames
yöntemi dışa aktarır . Çalıştırarak arayabilirsiniz:
gdbus call --system --dest org.freedesktop.DBus \
--object-path /org/freedesktop/DBus \
--method org.freedesktop.DBus.ListNames
Maalesef bu okunaksız çıktılara yol açıyor. Neyse ki çıktı geçerli python, yani bu mümkün:
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()))'
Genelde bunu yapmam ama kolumda kalmak için güzel bir numara. gdbus
Koda geçmeden önce kavramları incelemek ve kanıtlamak için kullanıyorum . Bash tamamlama, çok fazla yazarak tasarruf sağlar ve yazım hatalarını önler. Daha gdbus
güzel bir çıktı görüntülemek için güzel olurdu .
dbus-send
veya ile listelenmesigdbus
?