J'ai Rhythmbox en cours d'exécution sur mon bureau, et je veux être en mesure de le contrôler à distance via une interface web. J'ai des problèmes d'accès, cependant, parce que rhythmbox-client
se plaint que l'utilisateur (www-data) qui essaie d'y accéder n'a pas) comme X session en cours d'exécution, et b) n'a pas accès à mon rhythmbox informations dbus.obtenir des informations rhythmbox d'un autre utilisateur
(rhythmbox-client:13954): Rhythmbox-WARNING **: /bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.
Je suis en cours d'exécution apache, php sur ubuntu 10.04. Les méthodes suivantes ont également été essayé en appelant le script php via php cli à partir d'un autre utilisateur (exécution de ssh dans ma propre boîte avec un autre utilisateur)
J'ai essayé ces approches:
- système d'appel () et exec() du script php avec "rhythmbox -client --print-playing --no-start --no-resent"
- en utilisant directement DBus en php ainsi qu'un script python (l'appelant du php script avec system()/exec())
- en utilisant
setuid()
,setruid()
,seteuid()
dans un programme C et en l'appelant via php.
Je suis à la perte maintenant. Est-ce seulement possible? J'ai utilisé la suggestion de @ IvanGoneKrazy et pris le code environ de this similar question. Maintenant, j'ai ce code avec ce message d'erreur:
import subprocess, os
p = subprocess.Popen('dbus-launch', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for var in p.stdout:
sp = var.split('=', 1)
os.environ[sp[0]] = sp[1][:-1]
os.system('rhythmbox-client --print-playing')
message d'erreur:
(rhythmbox-client:15377): Rhythmbox-WARNING **: Launch helper exited with unknown return code 1