相关疑难解决方法(0)

跨登录会话重用 D-Bus 会话

我通过多个登录会话访问一台机器。会话的生命周期可能重叠也可能不重叠。就我而言,这些登录会话目前始终通过 SSH,但我也更愿意处理本地会话。

我有时需要在这些会话中使用 D-Bus,并且我想在这些登录会话中共享相同的 D-Bus 会话,以便使用 GVFS

推荐的方法是什么?我不想破坏我可能不知道的 D-Bus 的任何使用。我考虑过使用

export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id))
Run Code Online (Sandbox Code Playgroud)

但是(从 Ubuntu 12.04 开始)这似乎不对:

  • 这需要一个 X 会话,但我的 SSH 会话可能会或可能不会转发 X 显示,甚至那些没有相同的$DISPLAY
  • 如果没有可用的 X 显示,则dbus-launch抱怨“自动启动错误:X11 初始化失败”。并且不启动守护进程;
  • dbus-launch那个“男人页面状态--autolaunch的选项被认为是一个内部实现细节(...)。无论如何,没有真正的理由在 libdbus 实现之外使用它。”

dbus-launchD-Bus 套件中的其他工具是否支持自动检测运行dbus-daemon并连接到它?~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}如果 D-Bus 是通过 X 连接启动的,则必要的信息在其中,但如果没有可用的 X 连接,则似乎不会存储在任何地方。

我应该拼凑自己的 D-Bus 会话文件吗?如果我这样做,我应该使用目录中的~/.dbus/session-bus文件吗?路径是否/var/lib/dbus/machine-id可靠且可移植?

d-bus session

20
推荐指数
1
解决办法
5984
查看次数

标签 统计

d-bus ×1

session ×1