通常来说,X Server是否正常运行,则只要你能够用VNC打开或者能够在本机面前登陆CDE界面就可以认为是好的。
其实,我们就算是登陆到本机,如果方法不得当,一样会出现DISPLAY的问题。本人有幸花了点时间琢磨这个过程,请看如下测试过程:
本人在VM中间安装了Solaris10g和Oracle Database 10g,都已经确保正常运行。
然后以root的身份登陆到服务器上,用的桌面是CDE。此时,我知道该桌面的DISPLAY的值是0.0。
不开XHOST +,直接SU到其他用户
在桌面中打开一个terminal后,直接su - ora001用户,然后运.netca命令,DBA都知道这个GUI工具是干什么用的,我们拿来作个测试。此时报错说DISPLAY没有正确的设置。
此后,我将DISPLAY设置为HOSTNAME:0.0,重新运行netca命令,则报被服务器拒绝的错误,"Xlib:Connection to 'HOSTNAME' refused by server"。
OK,此时就算我将DISPLAY设置为HOSTNAME:1.0,估计一样的会出错。
打开XHOST +,直接SU到其他用户
在桌面打开一个terminal后,运行xhost +命令,然后在该terminal里面su - ora001用户。此时运行netca,还是报DISPLAY设置有问题的错误。那我们还等什么,干净设置一把好了。设置DISPLAY为HOSTNAME:0.0。之后,运行netca命令,OK,熟悉的GUI界面终于出来了。Cheer!
如果我在这种情况下,将DISPLAY设置成别的数字,发现GUI界面也出不了。
到此,整个有关DISPLAY的问题很清楚了。
如果你是登陆的root用户,切换到其他用户的时候,如果要用GUI界面,则在切换前使用xhost +,然后到切换的用户中设置正确的DISPLAY值,也就是设置成当前X Server的值。就可以了。
具体原理小弟还无法详细的解释,欢迎达人能够明晰。