2010-09-24 6 views
1

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 

Répondre

0

Un problème similaire et d'une solution pour Python est donné here. Le problème racine semble être que system() et exec() n'ont pas les bonnes variables d'environnement. Vous pouvez utiliser les PHP http://us.php.net/manual/en/function.proc-open.php pour définir les variables d'environnement pour votre processus généré par PHP.

Questions connexes