我在桌面上运行了Rhythmbox,我希望能够通过web界面远程控制它。但是,我在访问它时遇到了问题,因为
rhythmbox-client
抱怨试图访问它的用户(www data)没有a)运行as X会话,b)没有访问我的rhythmbox dbus信息。
(rhythmbox-client:13954): Rhythmbox-WARNING **: /bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.
我在ubuntu 10.04上运行apache和php。通过从不同的用户通过php cli调用php脚本,也尝试了以下方法(使用不同的用户进入我自己的框)
-
从php脚本中调用system()和exec(),其中包含“rhythmbox client--print playing--no start--no resent”
-
在php中直接使用DBus以及python脚本(使用system()/exec()从php脚本调用它)
-
使用
setuid()
setruid()
,
seteuid()
在一个C程序中,并通过php调用它。
我现在不知所措。这可能吗?
[编辑]
我使用了@IvanGoneKrazy的建议,并从
this similar question
. 现在,我得到了带有以下错误消息的代码:
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')
(rhythmbox-client:15377): Rhythmbox-WARNING **: Launch helper exited with unknown return code 1