উত্তর:
সেশন:
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
আপনি যদি কোনও জিইআইআই সরঞ্জাম পছন্দ করেন তবে আপনি ডিফিটও ব্যবহার করতে পারেন।
qdbusviewer
আপনার সেরা বন্ধু; এটি আপনাকে ডি-বাস বার্তাও প্রেরণ করতে দেয়:
qdbusviewer: could not exec '/usr/lib/i386-linux-gnu/qt4/bin/qdbusviewer': No such file or directory
d-feet
আজকের মতো কাজ করে।
d-feet
এটিকে আরও দৃশ্যমান করার জন্য উত্তর হিসাবে যুক্ত করার বিষয়ে বিবেচনা করুন
অজগর পথটি সুন্দর উপায়।
সিস্টেম পরিষেবাগুলি:
import dbus
for service in dbus.SystemBus().list_names():
print(service)
সেশন পরিষেবাগুলি:
import dbus
for service in dbus.SessionBus().list_names():
print(service)
pip install dbus-python
। পাইথন-ডিবিাস প্যাকেজটিও উপলব্ধ (আমি চেষ্টা করার 2 মিনিটে কাজ করতে পারিনি)।
gdbus
গ্লিব 2 এর একটি অংশ এবং বাশ সম্পূর্ণকরণকে সমর্থন করে। এটি কীভাবে ব্যবহার করবেন তা এখানে (ফেডোরায়):
bash-4.4$ source /usr/share/bash-completion/completions/gdbus
bash-4.4$ gdbus call --system --dest <TAB><TAB>
এটি সমস্ত সম্ভাব্য গন্তব্য দেখায়। উপলব্ধ ইন্টারফেসের একটি তালিকা পেতে ডিবিস org.freedesktop.DBus.ListNames
পদ্ধতিটি রফতানি করে । আপনি এটি চালিয়ে কল করতে পারেন:
gdbus call --system --dest org.freedesktop.DBus \
--object-path /org/freedesktop/DBus \
--method org.freedesktop.DBus.ListNames
দুর্ভাগ্যক্রমে এটি অপঠনযোগ্য আউটপুট বাড়ে। ভাগ্যক্রমে আউটপুটটি বৈধ অজগর, সুতরাং এটি সম্ভব:
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
কোডে যাওয়ার আগে ধারণাগুলি অন্তর্নির্ধারণ এবং প্রমাণ করার জন্য ব্যবহার করি । ব্যাশ সমাপ্তি টাইপিংগুলি প্রচুর পরিমাণে সাশ্রয় করে এবং টাইপগুলি এড়ান। চমৎকার হবে বলে gdbus
একটি nicer আউটপুট প্রদর্শন।
dbus-send
বা কোনও পরিষেবার অধীনে সমস্ত অবজেক্ট-পাথকে তালিকাভুক্ত করবেনgdbus
?