web-dev-qa-db-ja.com

DBUS_SESSION_BUS_ADDRESSをエクスポートする方法

組み込みシステム(Yocto Linux)でD-Busを実行し、アプリケーションコードから接続しようとしています。

dbus_bus_get(DBUS_BUS_SESSION, &err);を呼び出すと、次のエラーが発生します

Using X11 for dbus-daemon autolaunch was disabled at compile time, set your DBUS_SESSION_BUS_ADDRESS instead

最初にdbus-daemonを開始する必要があることに気付いたので、コマンドラインからdbus-launchを実行しました。これにより、DBUS_SESSION_BUS_ADDRESSの値が出力されますが、プログラムでエクスポートするにはどうすればよいですか?

助けてくれてありがとう

6
Neil

私はついに答えを見つけました。次のコマンドを実行すると、dbus-launchの出力がエクスポートされます。

export $(dbus-launch)
18
Neil

ターミナルに入力します。

eval \`dbus-launch --auto-syntax`
1
pid_gnome=$(pgrep gnome-session)
DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/${pid_gnome}/environ|cut -d= -f2-)
export DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}

ユーザーがDISPLAY変数を設定していることを確認してください。

別の選択肢は次のとおりです。

export $(dbus-launch)
1
user3801989

ターミナルに入力します。

export $DBUS_SESSION_BUS_ADDRESS
0
Syfi Malik