উপলব্ধ ডিবিএস পরিষেবাদির একটি তালিকা


65

উপলব্ধ ডিবিএস পরিষেবাদির তালিকার মতো কোনও জিনিস আছে?
আমি কয়েকজনকে হোঁচট খেয়েছি (নেটওয়ার্কম্যানেজার, রিদম্বক্স, স্কাইপ, এইচএল সরবরাহকারীদের মতো)।
আমি অবাক হয়েছি যদি আমি প্রদত্ত পরিষেবাদি / ইন্টারফেসের পরিবর্তে সম্পূর্ণ তালিকাটি পাই তবে।

উত্তর:


85

সেশন:

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

আপনি যদি কোনও জিইআইআই সরঞ্জাম পছন্দ করেন তবে আপনি ডিফিটও ব্যবহার করতে পারেন।


1
@ ডন-ক্রিশ্টি কীভাবে dbus-sendবা কোনও পরিষেবার অধীনে সমস্ত অবজেক্ট-পাথকে তালিকাভুক্ত করবেন gdbus?
খুরশিদ আলম

1
@ খুরশিদআলাম - আমি এখানে একটি উত্তর যুক্ত করেছি ।
don_crissti

30

qdbusviewerআপনার সেরা বন্ধু; এটি আপনাকে ডি-বাস বার্তাও প্রেরণ করতে দেয়:

qdbusviewer তিনটি সাবপ্যানেল সহ সেশন বাস ট্যাব দেখায়


এটি 2014 সালের হিসাবে ভাঙ্গা মনে হচ্ছে It এটি পরিষেবাগুলি তালিকাবদ্ধ করে তবে বার্তা প্রেরণ করতে পারে না ..
পিথিকোস

5
এমনকি আমি এটি উবুন্টু 14.04 এ শুরু করতে পারি না। এটি ব্যর্থ:qdbusviewer: could not exec '/usr/lib/i386-linux-gnu/qt4/bin/qdbusviewer': No such file or directory
ক্যাস্পারড

3
পিথিকোস d-feetআজকের মতো কাজ করে।
sherrellbc

@ শেরেরেলবিসি দয়া করে d-feetএটিকে আরও দৃশ্যমান করার জন্য উত্তর হিসাবে যুক্ত করার বিষয়ে বিবেচনা করুন
mivk

27

অজগর পথটি সুন্দর উপায়।

সিস্টেম পরিষেবাগুলি:

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

সেশন পরিষেবাগুলি:

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

সম্মত। আমি আপনার উত্তর একটি ফলো আপ প্রশ্ন জিজ্ঞাসা। unix.stackexchange.com/questions/203410/…
user768421

আমার একটি প্রশ্ন আছে, একটি প্লাজমা 5 ডেস্কটপ পরিবেশে, org.kde পরিষেবাটি স্ক্রিনশট নেওয়ার জন্য ব্যবহৃত হয় (এবং এটি কাজ করছে), তবে এটি সিস্টেম বাস বা সেশন বাসের তালিকাভুক্ত নয়, কেন?
মায়ো

যারা খুঁজছেন তাদের সহায়তা করতে: কমপক্ষে পাইথন ২.7.১৩ এবং ৩.6 এর জন্য, এটির জন্য প্রয়োজনীয় প্যাকেজটি dbus-python , এর সাথে ইনস্টলযোগ্য pip install dbus-python। পাইথন-ডিবিাস প্যাকেজটিও উপলব্ধ (আমি চেষ্টা করার 2 মিনিটে কাজ করতে পারিনি)।
bschlueter

6

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 আউটপুট প্রদর্শন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.