首页 > 其他分享 >使用虚拟界面的方式,解决“xhost: unable to open display.

使用虚拟界面的方式,解决“xhost: unable to open display.

时间:2023-08-09 10:48:06浏览次数:33  
标签:界面 GUI xhost unable linux docker open DISPLAY wine

背景

最近在做一个项目,需求是将windows开发的ocx控件移植到linux。该需求的解决方案想的是:在linux中部署docker,在docker中安装wine容器 ,通过wine容器启动windwos程序。

由于ocx控件依赖windows的控件,因此在使用wine命令时,需要传入$DISPLAY。

一开始,在给linux安装好GUI界面后,按照上述方案可以实现需求。需要在GUI的控制台中输入 "xhost +"命令,即可将GUI系统的界面转发至wine中。

但是随之而来的问题就是,实际部署中,不需要使用GUI界面,需要通过shell脚本的方式启动。

因此需要通过虚拟屏幕的方式解决该问题。

安装Xvfb

yum install Xvfb

我的linux系统为openEuler22.03

创建虚拟屏幕

Xvfb :1 -screen 0 1024x768x16 &

:1为指定的DISPLAY值

声明环境变量

export DISPLAY :1

传入docker

docker run -e DISPLAY=:1 ............

后续在docker容器中,需要使用$DISPLAY环境变量时,就会映射到虚拟屏幕上。

此方案适用于程序依赖窗口,但是窗口只是一个承载体,无业务交互,程序实际上相当于一个依赖窗户的后台服务。

标签:界面,GUI,xhost,unable,linux,docker,open,DISPLAY,wine
From: https://www.cnblogs.com/murencao/p/17616195.html

相关文章

  • opencv检测黑色轮廓(矩形)
    opencv检测黑色轮廓:importcv2importnumpyasnpclassShapeDetector:def__init__(self,image_path):self.image_path=image_pathself.img=cv2.imread(self.image_path)#读取图像self.imgContour=self.img.copy()#创建一个用......
  • opencv-python特征匹配
    本章节介绍暴力特征匹配,FLANN特征匹配等。根据前面章节获取的图像特征点和描述子之后,可以将两幅图像进行特征匹配。1暴力特征匹配通过枚举的方式进行特征匹配,使用第一幅图像中一个特征的描述子,并使用一些距离计算将其与第二幅图像中的所有其他特征匹配,返回最近的一个。opencv......
  • OpenStack简介
    OpenStack简介目录OpenStack简介1、云计算模式2、云计算虚拟化openstack之间的关系?3、OpenStack中有哪些组件?4、计算节点负责虚拟机运行5、网络节点负责对外网络与内网之间的通信5.1网络节点仅包含Neutron服务5.2网络节点包含三个网络端口6、存储节点负责对虚拟机的额外存储......
  • opencv-python特征检测
    本章节介绍Harris角点检测,SIFT关键点检测,shi-Tomasi角点检测,SURF特征检测,ORB特征检测。特征检测是提取图像信息,决定每个图像的点是否属于一个图像特征。其结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点,连续的曲线或连续的区域。特征检测包括边缘检测,角检测,区域检测......
  • 【我和openGauss的故事】在vm中安装openEuler及使用yum安装openGauss
    【我和openGauss的故事】在vm中安装openEuler及使用yum安装openGauss手机用户0951[openGauss](javascript:void(0);)2023-08-0316:49发表于四川1.前言随着互联网时代对数据库的新要求,以PostgreSQL为基础的开源数据库openGauss应运而生。openGauss在保持PostgreSQL接口兼容的前......
  • 【我和openGauss的故事】openEuler20.03上编译安装opengauss-5.0.0
    【我和openGauss的故事】openEuler20.03上编译安装opengauss-5.0.0ziyoo0830[openGauss](javascript:void(0);)2023-08-0316:49发表于四川为了更好地学习openGauss数据库知识,有时候需要去调试源代码来深入了解一些东西。以下记录了在openEuler20.03上编译最新的openGauss-serve......
  • openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA
    openGauss学习笔记-34openGauss高级数据管理-SCHEMASCHEMA又称作模式。通过管理SCHEMA,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的SCHEMA下而不引起冲突。每个数据库包含一个或多个SCHEMA。数据库中的每个......
  • Python中文件操作的详细使用:open()、os.open()和with open()
    前言在编程语言中,文件读写是最常见的IO操作,Python内置了读写文件的函数,其中包括open()函数、os.open()函数以及withopen()语句。本文将详细介绍这三种方法的使用方式、区别和最佳实践。open()open()函数是Python内置的用于打开文件的函数,它接受一个文件路径和打开模式作为参数,并返......
  • 工业4.0 RAMI体系之运动控制规范(PLCopen SoftMotion) @Like
    工业4.0 RAMI体系之运动控制规范(PLCopenSoftMotion)@Like 目录1.运动控制1.1.自动化控制1.2.PLCopen运动控制规范1.3.PLC功能块1.3.1.功能块特性1.3.2.单轴功能块Single-Axis1.3.3.多轴功能块Multi-Axis 运动控制1.1. 自动化控制PLC、Robot、CNC机械电......
  • Azure OpenAI
    AzureOpenAI服务-文档、快速入门、API参考-AzureAIservices|MicrosoftLearn ......