如何导出DBUS_SESSION_BUS_ADDRESS
Posted
tags:
篇首语:本文由小常识网(cha138.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
的值,但我怎么能以编程方式导出它?
谢谢您的帮助
答案
我终于找到了答案,运行以下命令导出dbus-launch的输出:
export $(dbus-launch)
另一答案
输入终端:
eval`dbus-launch --auto-syntax`
另一答案
输入终端:
export $DBUS_SESSION_BUS_ADDRESS
另一答案
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)
以上是关于如何导出DBUS_SESSION_BUS_ADDRESS的主要内容,如果未能解决你的问题,请参考以下文章