我在一台运行 Linux Mint 16 的机器上安装了 mate-screensaver。在这台机器上,我可以打开一个终端并查询屏幕保护程序的状态:
dan@box1 ~ $ echo $DISPLAY
:0.0
dan@box1 ~ $ mate-screensaver-command -q
The screensaver is inactive
The screensaver is not inhibited
Run Code Online (Sandbox Code Playgroud)
这一切都很好,而且很有意义。但是,当我通过 SSH 连接到同一台机器时,我没有得到我期望的结果:
dan@box2 ~ $ ssh box1
dan@box1 ~ $ export DISPLAY=:0.0
dan@box1 ~ $ echo $DISPLAY
:0.0
dan@box1 ~ $ mate-screensaver-command -q
** Message: Screensaver is not running!
Run Code Online (Sandbox Code Playgroud)
同样的方法适用于我所有其他运行不同版本 Mint 的计算机。没有什么奇怪的被记录到我的~/.xsession-errors
.
在阅读了这个答案之后,我发现将 my 设置DBUS_SESSION_BUS_ADDRESS
为unix:abstract=/tmp/dbus-ToCuEUyLn0,guid=9296df6ba791b044d4236e45545fbe55
(它在本地终端中的值)可以让事情像我期望的那样通过 SSH 进行。但是,~/.dbus/session-bus/*-0
包含一个不同的值,它不起作用,我找不到包含该变量正确值的文件。
为什么我的一台机器需要更改该值,而其余的则不需要?如果该行为有意义或难以纠正,我还能在哪里寻找该变量的正确值?