如何在启动时“导出$(dbus-launch)”

时间:2017-12-07 12:50:33

标签: yocto dbus gdbus

我正在使用GDbus并进行dbus通信。 它使用sesstion bus。

问题是dbus-launch。

我使用c ++ 11在Yocto中运行dbus。 而且,我必须导出$(dbus-launch)。

但是,我想在启动时导出$(dbus-launch)或同样的东西。 因为dbus是由systemd开始的。

2 个答案:

答案 0 :(得分:0)

一种解决方案是使用添加环境变量的配方:

SRC_URI +=  "file://dbus-env.sh"

do_install_append() {
    install -d -m 0755 ${D}${sysconfdir}/profile.d
    install -m 0755 ${WORKDIR}/dbus-env.sh ${D}${sysconfdir}/profile.d/
}

FILES_${PN} += "${sysconfdir}/profile.d/dbus-env.sh"

使用dbus-env.sh

#!/bin/sh

export $(dbus-launch)

答案 1 :(得分:0)

/etc/profile$HOME/.profile$HOME/.bashrc中使用此命令:

eval \`dbus-launch --auto-syntax`

这将导出具有适当值的"DBUS_SESSION_BUS_ADDRESS""DBUS_SESSION_BUS_PID"

您还可以使用this script

[[ -n $SSH_CLIENT ]] && export $(cat /proc/$(command pgrep -u "$USER"  -f -- "dbus-daemon --session" )/environ| tr '\0' '\n' | command grep "DBUS_SESSION_BUS_ADDRESS=")