转载 本机运行x程序出现:Can't open display 原因及其解决方法

在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上, 在终端上输入printenv查看当前环境变量, 输出结果中有如下内容:

DISPLAY=:0.0

使用xdpyinfo可以查看到当前显示的更详细的信息.

DISPLAY 环境变量格式如下host:NumA.NumB, host指Xserver所在的主机主机名或者ip地址, 图形将显示在这一机器上, 可以是启动了图形界面的Linux/Unix机器, 也可以是安装了Exceed, X-Deep/32等Windows平台运行的Xserver的Windows机器. 如果Host为空, 则表示Xserver运行于本机, 并且图形程序(Xclient)使用unix socket方式连接到Xserver, 而不是TCP方式. 使用TCP方式连接时, NumA为连接的端口减去6000的值, 如果NumA为0, 则表示连接到6000端口; 使用unix socket方式连接时则表示连接的unix socket的路径, 如果为0, 则表示连接到/tmp/.X11-unix/X0 . NumB则几乎总是0.

如果使用su username或者su - username切换到别的用户, 并且使用命令

export DISPLAY=:0.0
##(这句话可以写进.bashrc,就可以省去每次设计的麻烦)我注


设置DISPLAY环境变量, 运行图形程序(如xclock)时会收到如下错误:

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

Error: Can't open display: :0.0


这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令

xhost +

解决方案来自:
http://www.itpub.net/viewthread.php?tid=1052163
### 回答1: 错误:无法打开显示器。 这个错误通常出现在尝试在没有X服务器的情况下运行图形界面应用程序时。X服务器是一个用于显示图形界面的软件,如果没有它,就无法打开显示器。要解决这个错误,需要在安装X服务器后重新运行应用程序。 ### 回答2: "error: can't open display"指的是在尝试打开图形界面时出现的错误。 通常情况下,这是由于访问权限不足或显示器连接问题所致。 首先,如果用户没有足够的权限来打开显示,将出现此错误。权限问题可以通过以下方式解决: 1. 确认当前用户是否具有打开显示的权限。使用以下命令列出它们的权限。 $ xhost 如果没有权限,请使用以下命令为当前用户授予权限。 $ xhost + 2. 如果使用SSH远程访问系统,则可以将X11转发打开,以便将显示内容发送到本地计算机。使用以下命令打开X11转发。 $ ssh -X [用户名]@[服务器IP地址] 如果权限问题不是导致该错误的原因,则可能是与显示器连接或配置有关的问题。在这种情况下,可以尝试以下操作解决问题。 1. 检查显示器的连接和配置是否正确。确认显示器是否正确连接,通电并在正确的输入模式下。 2. 确认文件系统已正确挂载。如果文件系统未挂载,可以使用以下命令挂载。 $ sudo mount -t auto [文件系统路径] [要挂载的位置] 3. 确认图形驱动程序已正确安装。 如果驱动程序缺失或损坏,可能导致无法打开显示。 总所概括,“error: can't open display”通常表示缺乏访问权限或显示器连接和配置问题。通过验证权限、连接和驱动程序等因素可以解决该问题。 ### 回答3: “Error: can't open display”这个错误一般出现在Linux或者Unix系统中,是由于X会话没有正确的设置或者没有启动导致的。X会话是一种客户端/服务器模型的图形用户界面,X客户端产生的用于显示的信息被发送到X服务器,X服务器则将这些信息显示在屏幕上。 当出现“Error: can't open display”错误时,表示X客户端不能与X服务器进行联系,这可能是由于以下几个原因造成: 1. X服务器未启动或者并未在指定端口监听 2. 相关环境变量没有正确设置或者被覆盖了,比如DISPLAY 3. 没有相应的权限,如没有访问X服务器的权限等 对于第一个问题,我们可以通过命令行启动X会话,如命令startx,或者在图形界面下启动 对于第二个问题,需要确保环境变量DISPLAY的值正确,它应该指向X服务器所在机器的IP地址,格式为IP地址:显示序号,如192.168.1.1:0 对于第三个问题,可能是由于没有正确的配置X服务器,可以尝试通过修改/etc/X11/Xwrapper.config文件来进行配置,或者添加用户组,或者通过xhost命令来进行配置。 总之,当遇到“Error: can't open display”错误时,需要从以上几个方面来进行排查,确定问题所在,然后进行相应的修复。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值