知方号

知方号

VNC远程连接无法打开图形界面应用问题<华为本地主题怎么打开设置界面显示>

VNC远程连接无法打开图形界面应用问题

文章目录 前提:1、问题描述2、问题解决1.切换到需要执行图形界面的用户下2.修改环境变量参数3.切换vnc登录的端口号 3、步骤总结(如果第二步过程看不懂可以直接看这个)

前提:

首先你需要提前配置好vnc环境,如果不会可以参考:VNC安装部署教程 本实验我们以swingbench压测的图形界面为例 第二步问题解决主要以思路为主,看不懂的话直接看第三步步骤总结解决问题就行了

1、问题描述

在我们执行swingbench压测时,打开图形界面会卡在这里,那么我们要解决这个问题需要怎们办呢?我们接着往下看

2、问题解决 1.切换到需要执行图形界面的用户下

现在root用户下执行:

export DISPLAY=:2 xhost +

然后窗口不要关闭,在打开一个窗口执行下面的操作: 比如我要进行压测,需要进入Swingbench,那么我就需要切换到Oracle用户下

关于为什么窗口不要关闭解释 在大多数情况下,使用 export 命令设置环境变量后,变量会立即对当前会话生效。这意味着你可以立即在当前终端窗口或会话中使用新的环境变量。 然而,需要注意以下几点:

只对当前会话生效: 使用 export 设置的环境变量仅对当前终端窗口或会话生效。如果你关闭该窗口或终端会话,或者启动一个新的终端窗口,这些环境变量将会被重置。子进程的影响: 如果你从当前终端窗口中启动了其他进程或程序,它们将继承当前终端窗口的环境变量设置。永久设置: 如果你希望使环境变量的更改在系统重新启动后仍然保持有效,你可能需要将 export 命令添加到 shell 的配置文件中,如 ~/.bashrc 或 ~/.bash_profile(具体文件名可能因使用的 shell 而有所不同)。 总的来说,export DISPLAY=:2 命令应该立即使 DISPLAY 环境变量生效,但请确保你理解其作用范围以及如何使其更改持久。如果你遇到问题,可以尝试在当前终端窗口中执行 echo $DISPLAY 来验证是否成功设置了 DISPLAY。 su - oracle 2.修改环境变量参数 export DISPLAY=:2 xhost +

xhost命令是X服务器的访问控制工具,用来控制哪些X客户端能够在X服务器上显示。该命令必须从有显示连接的机器上运行。可以通过使用-host参数,从访问列表中除去一个名称。不要从访问列表中除去当前的名称。如果已经这样做了,请在作出任何更改之前注销系统。

xhost 是用来控制X server访问权限的。通常当你从hostA登陆到hostB上运行hostB上的应用程序时,做为应用程序来说,hostA是client,但是作为图形来说,是在hostA上显示的,需要使用hostA的Xserver,所以hostA是 server.因此在登陆到hostB前,需要在hostA上运行xhost + 来使其它用户能够访问hostA的Xserver.+:关闭访问控制,允许任何主机访问本地的X服务器;-:打开访问控制,仅允许授权清单中的主机访问本地的X服务器。xhost + ip使ip上的用户能够访问Xserver.xhost + nis:user@domain使domain上的nis用户user能够访问xhost + inet:user@domain使domain上的inet用户能够访问。

这里这个参数是什么都可以,我开始是以1端口登录vnc的,所以我设置2端口,然后在使用2端口登录就行了,只需要注意这里端口开放的是几就需要用几号端口登录

DISPLAY 是一个环境变量,用于指定 X Window System 中的显示服务器。在使用图形用户界面(GUI)应用程序时,这个环境变量告诉应用程序在哪里找到显示服务器,以便绘制图形界面。

X Window System 是一种用于在计算机屏幕上创建和管理图形用户界面的系统。DISPLAY 环境变量告诉 X 客户端应用程序与哪个 X 服务器通信。 通常,DISPLAY 的值的格式是 hostname:displaynumber.screennumber,其中:

hostname 是运行 X 服务器的机器的名称。如果在本地运行,通常为 “localhost”。displaynumber 是 X 服务器的显示号,通常为 0。screennumber 是屏幕的号码,通常为 0。 例如,:0.0 表示本地 X 服务器的第一个显示屏的第一个屏幕。在环境变量中,你可能会看到 DISPLAY 的值类似于 localhost:0.0。 当你启动一个 GUI 应用程序时,它会查找 DISPLAY 变量以确定在哪里显示图形界面。如果 DISPLAY 没有正确设置,或者指向的 X 服务器不可用,就会导致类似 “Can’t connect to X11 window server” 的错误。 在远程连接时,通过 SSH 使用 -X 或 -Y 选项可以将 X11 显示传输到本地机器,从而使得在远程服务器上运行的应用程序的图形界面显示在本地。例如: ssh -X username@hostname

这样,DISPLAY 就会被设置为指向本地 X 服务器,并且远程应用程序的图形界面将显示在你的本地屏幕上。

3.切换vnc登录的端口号

可以看到我原来是1,但是我开放的是2 所以我需要切换2登录

export DISPLAY=:2

在使用2号端口尝试打开图形界面就解决问题了

3、步骤总结(如果第二步过程看不懂可以直接看这个) 2解决问题主要以解决思路为主,如果看不懂可以直接看这里 这里以在1号窗口打开为例: 配置服务器xhost 和DISPLAY变量 #应用服务器root用户[root]# export DISPLAY=:1[root]# xhost +access control disabled, clients can connect from any host[root]# #应用服务器应用用户[oracle]# export DISPLAY=:1[oracle]# xhost +access control disabled, clients can connect from any host[oracle]# #配置应用用户下的.bashrc文件将export DISPLAY=:0 写到这个文件中去,然后执行 . .bash_profile 生效

我现在root用户下执行,注意这个会话不要关闭 然后在oracle用户下执行,注意这个会话也不要关闭 然后打开vnc1号端口

就可以成功打开了

OK完结散花,这个过程可能会遇到一些问题,如果有问题可以联系博主解决。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。