我正在使用GDbus并进行dbus通信。 它使用sesstion bus。
问题是dbus-launch。
我使用c ++ 11在Yocto中运行dbus。 而且,我必须导出$(dbus-launch)。
但是,我想在启动时导出$(dbus-launch)或同样的东西。 因为dbus是由systemd开始的。
答案 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=")