从 tmux 内部运行时,gnome-open 会引发此错误

dan*_*dan 6 gnome tmux

我得到的错误是这样的:

GConf Error: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon. 
See http://projects.gnome.org/gconf/ for information. 
(Details -  1: Failed to get connection to session: Error connecting: Connection refused)
Failed to open bus: Failed to connect to socket /tmp/dbus-BYC0LHrEHk: Connection refused
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Gil*_*il' 5

与其让 Gnome 运行dbus-launch来创建一个随机的 D-Bus 地址,dbus-daemon不如在 X 会话启动的早期明确开始,并给它一个固定地址,如unix:path=~/.dbus-$HOSTNAME-$DISPLAY.

鉴于错误报告中的信息,您甚至可以逃脱unset DBUS_SESSION_BUS_ADDRESS并让应用程序从根窗口属性中找出总线地址。

从 15.10 开始,每个会话的 dbus 实例是通过Upstart session job创建的。有问题的作业文件是/usr/share/upstart/sessions/dbus.conf. 您可以通过覆盖pre-start script指定要使用的地址的节来替换默认的随机地址。~/.config/upstart/dbus.override使用以下内容创建:

pre-start script
    DBUS_SESSION_BUS_ADDRESS=unix:path=$HOME/.dbus-$(hostname)-$(echo $DISPLAY | sed -e s/:/%3A/)
    initctl set-env DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS
end script
Run Code Online (Sandbox Code Playgroud)

固定地址将在您下次登录后使用。