আমি কীভাবে কোনও ডিবিএস সিগন্যালে স্ক্রিপ্ট চালাব?


13

একটি স্বেচ্ছাসেবক dbus সিগন্যালে স্ক্রিপ্ট চালানো সম্ভব? আপস্টার্টের মতো এমন কিছু যা একটি অনিবদ্ধ ব্যবহারকারী হিসাবে চলে এবং সংশোধন করার জন্য রুট পার্মের প্রয়োজন হয় না?

আমি জিজ্ঞাসা করি কারণ আমি ইতিমধ্যে একটি নির্লিপ্ত স্ক্রিপ্ট লিখেছি যা আমার সংগীত প্লেয়ারটি শুরু করার জন্য ব্লুটুথ ইভেন্টগুলির জন্য অপেক্ষা করে । আমার মেশিনটি নির্দিষ্ট নেটওয়ার্কগুলিতে বা অন্যান্য ডিভাইস সংযুক্ত হওয়ার সাথে সাথে অনুরূপ কিছু করতে চাই।

সম্পাদনা: আমার মূল প্রশ্নটি এটি নির্দিষ্ট করে নি, তবে আমার অর্থ ছিল "ইভেন্টগুলির একটির সাথে অনেকগুলি স্ক্রিপ্ট সংযুক্ত করা" - সুতরাং আমার কাছে একই লঞ্চ-ওয়াই জিনিসটি ছিল (আপস্টার্টের মতো) যা বেশ কয়েকটি স্ক্রিপ্ট পরিচালনা করে have , যার প্রতিটি আলাদা ডিবিস সিগন্যালের বিষয়ে চিন্তা করে। সমস্ত ব্যবহারকারী স্পেসে।


সম্ভবত আপনি যা সন্ধান করছেন এটি ঠিক তা নয়, আপনি যখন আপস্টার্ট সম্পর্কে কথা বলেছেন তখন আমার মনে পপ-আপ। আপনি systemd সহ স্ক্রিপ্টগুলি ট্রিগার করতে পারেন । কোন ধরণের ইউনিট আপনার ব্লুটুথ ডিভাইস তৈরি করে তা আমি ঠিক নিশ্চিত নই, তবে আমি মনে করি একটি আছে।

উত্তর:


16

তোমার দরকার dbus-monitor

স্ক্রিপ্টটি দেখতে এমন কিছু লাগবে

#!/bin/bash

interface=org.gnome.Rhythmbox.Player
member=playingUriChanged

# listen for playingUriChanged DBus events,
# each time we enter the loop, we just got an event
# so handle the event, e.g. by printing the artist and title
# see rhythmbox-client --print-playing-format for more output options

dbus-monitor --profile "interface='$interface',member='$member'" |
while read -r line; do
  printf "Now playing: "
  rhythmbox-client --print-playing
done

থেকে নেওয়া Stackoverflow

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