【问题标题】:Connecting to DBus from emacs daemon从 emacs 守护进程连接到 DBus
【发布时间】:2014-11-12 13:15:06
【问题描述】:

我最近尝试在 GNU Emacs 24.4 下使用 evince 设置 AucTeX SyncTeX。在一个普通的 emacs 会话中,它在激活 TeX-source-correlate-mode 后可以正常工作,但在我的标准守护进程会话下,Dbus 拒绝正常工作。 TeX-Evince-sync-view 失败并出现 DBus 'no conncetion' 错误,所以我尝试了 M-: (dbus-init-bus :system) 但返回 ((:signal :system "org.freedesktop.DBus.Local" "Disconnected") (nil "/org/freedesktop/DBus/Local" dbus-handle-bus-disconnect))

M-: dbus-init-bus :session 相应地失败并显示“无连接”。

有谁知道如何让 DBus 在 Emacs 下以 Daemon 模式正常运行?

【问题讨论】:

  • 你是怎么解决的?对我来说,在 Emacs 上设置 $DBUS_SESSION_BUS_ADDRESS 都不起作用。只有在我调用 emacs --daemon 之前在外部设置它时才有效,这是一个大问题,因为我的 emacs 守护进程在 X 服务器之前启动(我使用 OpenRC 服务)

标签: emacs dbus emacs24 auctex


【解决方案1】:

当您从 Emacs 连接到 D-Bus 时,它必须知道相应的 dbus-daemon 所在的位置。通常,它通过环境变量 $DBUS_SESSION_BUS_ADDRESS 知道它。因此,在您调用 (dbus-init-bus :session) 或类似方法之前,请在您的守护进程 Emacs 中设置此变量

【讨论】: