据我了解,如果环境定义了两个变量,则 dbus 用户将连接到 session 总线守护进程:
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-1cAnv4I,guid=3a453c40b5034f
DBUS_SESSION_BUS_PID=102
如果守护进程停止并且我们通过 dbus-launch 启动一个新的守护进程,我们将获得环境的新值。在这种情况下,如何在不重新启动的情况下将新值传播到正在运行的用户进程中?
最佳答案
重启后获取地址的一种方法是查询相应的 X11 属性:
dbus-daemon 设置 _DBUS_SESSION_BUS_SELECTION_[hostname]_[uuid]
选择所有者的 _DBUS_SESSION_BUS_ADDRESS
属性(uuid 是 /var/lib/dbus/machine 的内容-id
)。这是我用来读取此值的代码:https://github.com/sidorares/node-dbus/blob/master/lib/address-x11.js
关于c - dbus 如何重新连接到新的 session 总线守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25023469/