Ubuntu本地显示

我有一个运行gdm的Ubuntu服务器,里面有graphics用户会话。 我也有从该服务器上的远程主机打开ssh控制台。

我想从该远程控制台运行x windows应用程序。

export DISPLAY=0.0 xclock Error: Can't open display: 0.0 

我怎么能做到这一点,而无需重新启动gdm和启用与xhost +的远程连接,有什么办法吗? 我不能使用本地命名pipe道连接到显示服务器?

您需要运行您想要显示的命令作为login的同一用户。在运行gdm的情况下,这将是root用户。

 # DISPLAY=:0.0 yourcommand or # export DISPLAY=:0.0 # yourcommand 

如果要允许本地计算机上的所有其他用户使用显示器,请将其作为显示器的当前用户运行:

 xhost +local: 

(没有什么:)

这可能是一个问题,如果有其他用户,你不希望允许使用显示器。 在这种情况下,您需要使用xauth进行更细粒度的控制。

在X-Windows会话中,调出一个terminal并键入

 xhost +local 

然后在远程SSHterminal中运行你的命令:

 export DISPLAY=:0.0 xclock & 

这应该正常工作。

显示属性需要一个领先的“:”。 整个符号实际上是host:displaynum ,但是如果你希望主机部分显示在本地主机上,主机部分可以被closures。 但是,冒号不能离开。 所以“:0.0”是你可能想要的值(和“:0”可能也会起作用)。

当从远程主机进入时,实际上最简单的事情(因为它负责X身份validation确保X连接)是让ssh为您处理X屏幕转发和环境设置。 你可以用-X开关来做到这一点:

ssh -X remotehost.example.com

这样做后,你可以检查DISPLAYvariables,你会发现它会是这样的:10.0 ,因为它实际上是将远程X显示端口端口转发到本地显示。