在putty等远程命令行终端执行带有GUI图形界面的程序找不到$DISPLAY错误的解决办法,xserver相关
2012-10-30 16:46
381 查看
偶在使用普通用户安装weblogic的时候碰到的GUI不能弹出的问题:
一般在命令行执行需要界面的程序,一般都会报 display找不到,或者说你的¥DISPAY环境变量没置的错误。这时就要通过设置DISPLAY环境变量为一个存在的显示器,还有通过xhost/xauth来设置显示器的权项。(xhost是久的,一般推荐用xauth了吧,xauth的安全控制更好一些。)
情况1.
[root@ ~]# /usr/lib/firefox-1.5.0.12/firefox
(firefox-bin:24779): Gtk-WARNING **: cannot open display:
--------------
解决办法,执行如下命令。
export DISPLAY=:0.0 设置默认的显示器
xhost +LOCAL: 开放 本地连接xserver的权限
情况2.
[root@~]# xhost +LOCAL:
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
xhost: unable to open display ":0.0"
------------------------
[root@ ~]# startx
xauth: creating new authority file /root/.serverauth.19320
Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.
Xlib: connection to ":0.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
giving up.
xinit: unable to connect to X server
xinit: No such process (errno 3): Server error.
-------------------------------------------------------------------------
解决办法一:偶用的这种方法
export DISPLAY=:0.0 设置默认的显示器
init 3 关闭 xserver ,要先init 3 了才能startx ,startx后权限自动会被写到/root/.Xauthority 文件里面去,这样xauth list 就能显示正确的cookie ,xhost +localhost: 也会正常工作。
startx 启动server
xauth list 检查 xserver的连接权限
xhost +localhost: 开放 本地连接xserver的权限
如果这都不能解决问题, 去学学上面几个命令吧 ,man init ,man xauth 等,
解决方法二:
这个问题可能是这种情况,Xorg 这个xserver进程是被gdm 等启动的,但xserver启动后,他不会像使用startx来启动一样把MIT-MAGIC-COOKIE写到 /root/.Xauthority 里面去,所以root想启动带gui的程序时就会出现没有权限的错误,就是那个MIT-MAGIC-COOKIE-1没有存在或者是错误的。这样的话,可以自己根据ps命令查出来的Xorg进程的状态,因为虽然他没有自动配置 /root/.Xauthority 文件,但他是生成一个认证的文件放在/var/gdm/:0.Xauth里面的。我们可以用xauth list来查看这个文件得到正确的MIT-MAGIC-COOKIE-1,然后自己把它添加到 /root/.Xauthority 文件里面去。这样也能解决问题。
[root@ ~]# ps -ef |grep X
root 14796 14789 1 23:55 tty8 00:00:01 /usr/bin/Xorg :0 -br -audit 0 -auth /var/gdm/:0.Xauth -nolisten tcp vt8
root 14834 14510 0 23:57 pts/1 00:00:00 grep X
-------------------------------------
[root@ ~]# xauth -f /var/gdm/:0.Xauth list
#ffff##:0 MIT-MAGIC-COOKIE-1 6755317d62ce89e598dad3da65b14167
这个文件里的是正确的key
---------------------
[root@ ~]# xauth list
XXXXX/unix:0 MIT-MAGIC-COOKIE-1 3a03381e5745b7aad7477825c30740b4
localhost.localdomain:0 MIT-MAGIC-COOKIE-1 3a03381e5745b7aad7477825c30740b4
这个是 /root/.Xauthority 里面 的错误key
------------
[root@ ~]# xauth remove XXXXX/unix:0
[root@ ~]# xauth remove localhost.localdomain:0
--------------------------
[root@ ~]# xauth add XXXXX/unix:0 . 6755317d62ce89e598dad3da65b14167
[root@~]# xauth add localhost.localdomain:0 . 6755317d62ce89e598dad3da65b14167
---------------------------
[root@ ~]# xauth list
XXXXX/unix:0 MIT-MAGIC-COOKIE-1 6755317d62ce89e598dad3da65b14167
localhost.localdomain:0 MIT-MAGIC-COOKIE-1 6755317d62ce89e598dad3da65b14167
删掉再自己添加进来之后,这里就是正确的key了。
注意 XXXXX/unix 表示 XXXXX这个host采用的事unix socket协议,只允许本地连接的那种.
localhost.localdomain:0这种中间没有/unix的才允许远程tcp连接的,参考下面的xerver配置说明。
如果有时用终端登录过去也要为本地的display配置以下,程序才能找到相应的DISPLAY.
推荐使用第二种方法吧,因为这样不需要用init3 init5 进行切换,也可以避免使用startx,不知道startx和init 5的配置是不是一样的。还是init 5 之后用 第二种办法自己修改 magic cookie来的好一些。
一般在命令行执行需要界面的程序,一般都会报 display找不到,或者说你的¥DISPAY环境变量没置的错误。这时就要通过设置DISPLAY环境变量为一个存在的显示器,还有通过xhost/xauth来设置显示器的权项。(xhost是久的,一般推荐用xauth了吧,xauth的安全控制更好一些。)
情况1.
[root@ ~]# /usr/lib/firefox-1.5.0.12/firefox
(firefox-bin:24779): Gtk-WARNING **: cannot open display:
--------------
解决办法,执行如下命令。
export DISPLAY=:0.0 设置默认的显示器
xhost +LOCAL: 开放 本地连接xserver的权限
情况2.
[root@~]# xhost +LOCAL:
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
xhost: unable to open display ":0.0"
------------------------
[root@ ~]# startx
xauth: creating new authority file /root/.serverauth.19320
Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.
Xlib: connection to ":0.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
giving up.
xinit: unable to connect to X server
xinit: No such process (errno 3): Server error.
-------------------------------------------------------------------------
解决办法一:偶用的这种方法
export DISPLAY=:0.0 设置默认的显示器
init 3 关闭 xserver ,要先init 3 了才能startx ,startx后权限自动会被写到/root/.Xauthority 文件里面去,这样xauth list 就能显示正确的cookie ,xhost +localhost: 也会正常工作。
startx 启动server
xauth list 检查 xserver的连接权限
xhost +localhost: 开放 本地连接xserver的权限
如果这都不能解决问题, 去学学上面几个命令吧 ,man init ,man xauth 等,
解决方法二:
这个问题可能是这种情况,Xorg 这个xserver进程是被gdm 等启动的,但xserver启动后,他不会像使用startx来启动一样把MIT-MAGIC-COOKIE写到 /root/.Xauthority 里面去,所以root想启动带gui的程序时就会出现没有权限的错误,就是那个MIT-MAGIC-COOKIE-1没有存在或者是错误的。这样的话,可以自己根据ps命令查出来的Xorg进程的状态,因为虽然他没有自动配置 /root/.Xauthority 文件,但他是生成一个认证的文件放在/var/gdm/:0.Xauth里面的。我们可以用xauth list来查看这个文件得到正确的MIT-MAGIC-COOKIE-1,然后自己把它添加到 /root/.Xauthority 文件里面去。这样也能解决问题。
[root@ ~]# ps -ef |grep X
root 14796 14789 1 23:55 tty8 00:00:01 /usr/bin/Xorg :0 -br -audit 0 -auth /var/gdm/:0.Xauth -nolisten tcp vt8
root 14834 14510 0 23:57 pts/1 00:00:00 grep X
-------------------------------------
[root@ ~]# xauth -f /var/gdm/:0.Xauth list
#ffff##:0 MIT-MAGIC-COOKIE-1 6755317d62ce89e598dad3da65b14167
这个文件里的是正确的key
---------------------
[root@ ~]# xauth list
XXXXX/unix:0 MIT-MAGIC-COOKIE-1 3a03381e5745b7aad7477825c30740b4
localhost.localdomain:0 MIT-MAGIC-COOKIE-1 3a03381e5745b7aad7477825c30740b4
这个是 /root/.Xauthority 里面 的错误key
------------
[root@ ~]# xauth remove XXXXX/unix:0
[root@ ~]# xauth remove localhost.localdomain:0
--------------------------
[root@ ~]# xauth add XXXXX/unix:0 . 6755317d62ce89e598dad3da65b14167
[root@~]# xauth add localhost.localdomain:0 . 6755317d62ce89e598dad3da65b14167
---------------------------
[root@ ~]# xauth list
XXXXX/unix:0 MIT-MAGIC-COOKIE-1 6755317d62ce89e598dad3da65b14167
localhost.localdomain:0 MIT-MAGIC-COOKIE-1 6755317d62ce89e598dad3da65b14167
删掉再自己添加进来之后,这里就是正确的key了。
注意 XXXXX/unix 表示 XXXXX这个host采用的事unix socket协议,只允许本地连接的那种.
localhost.localdomain:0这种中间没有/unix的才允许远程tcp连接的,参考下面的xerver配置说明。
如果有时用终端登录过去也要为本地的display配置以下,程序才能找到相应的DISPLAY.
推荐使用第二种方法吧,因为这样不需要用init3 init5 进行切换,也可以避免使用startx,不知道startx和init 5的配置是不是一样的。还是init 5 之后用 第二种办法自己修改 magic cookie来的好一些。
相关文章推荐
- 在putty等远程命令行终端执行带有GUI图形界面的程序找不到$DISPLAY错误的解决办法,xserver相关
- cmd命令行执行java程序的编译和执行的方法及可能出现找不到或无法加载主类的错误的解决
- 在 root 下执行 Oracle 程序时找不到 libclntsh.so.11.1 错误的解决办法。
- 在 root 下执行 Oracle 程序时找不到 libclntsh.so.11.1 错误的解决办法。
- 在 root 下执行 Oracle 程序时找不到 libclntsh.so.11.1 错误的解决办法。
- 在 root 下执行 Oracle 程序时找不到 libclntsh.so.11.1 错误的解决办法。
- 在 root 下执行 Oracle 程序时找不到 libclntsh.so.11.1 错误的解决办法。
- 在windows2003server上运行asp程序,发生验证码看不到,文件找不到等错误的解决办法
- eclipse编译的java程序命令行执行时提示找不到mysql驱动文件时的解决办法
- Win Server 2003远程桌面提示:要登录到这台远程计算机,您必须拥有这台计算机上的终端服务器用户访问权限提示的解决办法
- 使用Visual Studio Development Server开发域验证程序时出现HTTP Error 403 - Forbidden错误的解决办法
- 错误: 找不到或无法加载主类 Files\red5-server ,原因与解决办法
- 虚拟服务器Windwos server 2003远程安装SQL server 2008R2提示0x2d2816fe错误解决办法
- IIS7.0 调试ASP程序时候,程序有错误只提示"An error occurred on the server when processing the URL.Please contact the system administrator",看不到详细的提示的解决办法
- CMD命令行Java 错误:找不到或无法加载主类解决办法
- Ubuntu下找不到php5,phpize等可执行程序的解决办法
- HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效 的解决办法
- 执行Hbase命令遇到了错误: regionserver running as process ×××. Stop it first.解决办法
- 创建ASP.NET程序时候发生错误"HTTP/1.0 500 Server Error"的一个解决办法