1

我的桌面上运行着 Rhythmbox,我希望能够通过 Web 界面远程控制它。但是,我在访问它时遇到问题,因为rhythmbox-client抱怨尝试访问它的用户(www-data)没有 a) X 会话正在运行,并且 b) 无权访问我的节奏盒 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 脚本也尝试了以下方法(与不同用户一起进入我自己的盒子)

我试过这些方法:

  • 使用“rhythmbox-client --print-playing --no-start --no-resent”从 php 脚本调用 system() 和 exec()
  • 直接在 php 中使用 DBus 以及 python 脚本(使用 system()/exec() 从 php 脚本调用它)
  • 在 C 程序中使用setuid(), setruid(),seteuid()并通过 php 调用它。

我现在很茫然。这甚至可能吗?

[编辑] 我使用了@IvanGoneKrazy 的建议,并从这个类似的问题中获取了环境代码。现在我有这个错误消息的代码:

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
4

0 回答 0