Можно ли запустить скрипт на произвольном сигнале dbus? Что-то вроде Upstart, который запускается как непривилегированный пользователь и не требует изменения прав администратора?
Я спрашиваю, потому что я уже написал глупый скрипт, который ждет событий bluetooth для запуска моего музыкального проигрывателя [ 110]. Теперь я хотел бы сделать нечто подобное, когда моя машина подключается к определенной сети или подключается другое устройство.
РЕДАКТИРОВАТЬ: Мой оригинальный вопрос не уточнил это, но я имел в виду «связать несколько сценариев с одним из набора событий» - так что я бы имел тот же самый y (например, Upstart), который управляет несколькими сценариями, каждый из которых заботится о своем сигнале dbus. Все в пространстве пользователя.
Вам нужно 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