X Window 系统如何使用这两个变量?
在我的 Ubuntu 9.10 主机上,如果我将 XAUTHORITY 设置为任意值,然后尝试运行 GUI 程序,我会收到GTK-WARNING ***: cannot open display :0.0
(DISPLAY 默认设置为 :0.0)。是什么导致了此错误消息?
答案1
DISPLAY 由 X Window 系统用来指定主机、图形控制器和物理显示器。默认值 :0.0 表示本地主机(通常是 Unix 域套接字而不是 TCP/IP 套接字)、第一个图形控制器和第一个连接的物理显示器(两者均为 0)。如果您要连接到不同主机上的 X 服务器,则需要指定该主机的名称或 IP 地址;如果您要使用不同的控制器或显示器,则需要指定该数字。
XAUTHORITY 由 xauth 使用(如 c4747p 所述)并包含具有您的 X 权限令牌的文件的名称。
您之所以收到该消息,可能是因为错误的 XAUTHORITY 文件导致您无权连接到 X 服务器。
答案2
DISPLAY 告诉程序在哪个“显示器”上运行(Linux 通常有多个虚拟控制台)。:0 是默认值;您可以配置更多。XAUTHORITY 与 xauth 系统相关。xauth 系统管理连接到以 root 身份运行的 X 服务器的权限。由于程序找不到它认为您在 XAUTHORITY 中指定的授权文件,因此它无法获得连接权限。
答案3
c4757p 是正确的。
设置XAUTHORITY后无法启动GUI程序的具体原因是,它已经有一个值(登录时由显示管理器程序自动分配),如果您篡改该值,更改授权时会遇到问题。您仍然可以启动程序,但以其他用户身份运行任何程序都会有问题(因此任何管理程序都不会启动。)