デスクトップでRhythmboxを実行していますが、Webインターフェイスを介してリモートからRhythmboxを制御できるようにしたいと考えています。アクセスに問題が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.
私はubuntu10.04でapache、phpを実行しています。次のメソッドも、別のユーザーからphp cliを介してphpスクリプトを呼び出すことによって試行されました(別のユーザーと一緒に自分のボックスに移動します)
私はこれらのアプローチを試しました:
- 「rhythmbox-client--print-playing--no-start --no-resent」を使用して、phpスクリプトからsystem()とexec()を呼び出します。
- phpおよびpythonスクリプトで直接DBusを使用する(system()/ exec()を使用してphpスクリプトからDBusを呼び出す)
- Cプログラムで、、を使用し
setuid()
、php経由で呼び出します。setruid()
seteuid()
私は今途方に暮れています。これも可能ですか?
[編集]@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