linux中在命令行打开图形程序出现Xlib: connection to ":0.0" refused by server等错误
出错内容如下:
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Error: Can't open display: :0.0
原因是:此用户没有访问Xserver的权限(即Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上)
那如何设置用户对Xserver的权限呢,这就要讲到xhost和display了
DISPLAY用来设置将图形显示到何处,默认是:0:0,即显示到本地窗口printenv查看当前环境变量
xhost:控制访问Xserver的权限
如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令
(了解:通常当你从hostA登陆到hostB上运行hostB上的应用程序时,做为应用程序来说,hostA是client,但是作为图形来说,是在hostA上显示的,需要使用hostA的Xserver,所以hostA是server.因此在登陆到hostB前,需要在hostA上运行xhost
+,来使其它用户能够访问hostA的Xserver.)
xhost
+ 是使所有用户都能访问Xserver.
xhost + ip使ip上的用户能够访问Xserver.
xhost + nis:[email protected]使domain上的nis用户user能够访问
xhost + inet:[email protected]使domain上的inet用户能够访问。
显示过程: