Est-il possible d'exécuter un script sur un signal dbus arbitraire? Quelque chose comme Upstart fonctionne comme un utilisateur non privilégié et ne nécessite pas de perms root pour le modifier?
Je demande parce que j’ai déjà écrit un script idiot qui attend que des événements bluetooth lancent mon lecteur de musique . Maintenant, j'aimerais faire quelque chose de similaire lorsque ma machine se connecte à des réseaux spécifiques ou à d'autres périphériques.
EDIT: Ma question initiale ne le précisait pas, mais je voulais dire "associer un certain nombre de scripts à l'un des ensembles d'événements" - alors je ' d avez le même programme de lancement (comme Upstart) qui gère un certain nombre de scripts, dont chacun traite d’un signal dbus différent. Tout dans l'espace utilisateur.
Vous avez besoin du dbus-monitor
Le script ressemblera à quelque chose comme
#!/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