zoukankan      html  css  js  c++  java
  • [Linux]Windows远程CENTOS7桌面

    1 背景/问题描述

    客户要在CENTOS7上运行我司的基于Java的一款图形化桌面软件,然后在Windows上远程该机器的桌面软件进行操作使用。但问题是,客户的CENTOS7服务器没有图形化桌面环境,此时可咋搞?

    Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
    org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
            at org.eclipse.swt.SWT.error(Unknown Source)
            at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source)
            at org.eclipse.swt.widgets.Display.create(Unknown Source)
            at org.eclipse.swt.graphics.Device.<init>(Unknown Source)
            at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
            at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
            at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:664)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:498)
            at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)
    

    2 原因分析

    CENTOS 服务器没有安装图形化桌面环境,例如:Gnome等

    org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed] 
      Linux主机已默认启动图形界面。
      网上查找资源,说是: 请求不到display资源造成的
    

    3 解决方法

    情况1:若CENTOS主机已安装有图形化桌面环境时

    方法1:借助外部工具———XManager(仅适用于CENOTS是VMware安装的)

    亲测有效 at 2020-12-13

    参见此博客: [Linux]Xmanager+Xshell远程管理桌面版CentOS物理服务器的桌面版CentOS虚拟机 - 博客园/千千寰宇

    方法2:关机重启

    未亲测,但可尝试

    reboot 或 shutdown -r now
      # 关机重启,即可
    

    情况2:若CENTOS主机尚未安装图形化桌面环境时

    step0 确保yum软件源正常

    可参见此文: [Linux]CentOS7搭建/配置:YUM仓库/源[本地源/Web源(Apache HTTP(D))/自建源仓库] - 博客园

    step1 安装、启动 CENTOS的图形桌面环境软件(Gnome)

    桌面环境软件有很多,其中 CENTOS OS用得最多的就是: GNOME。因此,本文使用 Gnome 作为图形桌面软件

    yum -y groups install "GNOME Desktop"
      # 安装OS桌面环境
    
    startx
      # 启动OS桌面环境
    

    【补充/延申(仅了解即可)】:
    默认启动桌面环境后以 root 用户自动登录

    vi /etc/gdm/custom.conf
      # 修改配置文件
    
    [daemon] # 增加如下配置
    AutomaticLoginEnable=True
    AutomaticLogin=root
    

    【补充/延申(仅了解即可)】: 桌面环境/启动模式

    systemctl get-default
      # 获取当前启动模式
    
    systemctl set-default graphical.target
      # 修改启动模式为图形化
    
    systemctl set-default multi-user.target
      # 修改启动模式为命令行
    

    step2 安装、启动:CENTOS的远程服务(Xrdp)

    # 1 Windows 远程登录需要安装 Xrdp,需要 epel 源
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    yum install -y xrdp
    
    # 2 Xrdp 会调用 VNC,安装 tigervnc-server
    yum install -y tigervnc-server
    
    # 3 修改 Xrdp 最大连接数
    vim /etc/xrdp/xrdp.ini
    max_bpp=32
    
    # 4 启动 Xrdp 并设置开机启动
    systemctl start xrdp
    systemctl enable xrdp
    
    # 5-1 开放 3389 端口,或者关闭防火墙
    firewall-cmd --permanent --zone=public --add-port=3389/tcp
    firewall-cmd --reload
    # 5-2 关闭防火墙
    systemctl stop firewalld
    # 5-3 禁止防火墙开机启动
    systemctl disable firewalld
    

    step3 打开 Windows的远程桌面(mstsc)

    windows-cmd# mstsc
    
    输入CENTOS系统的:IP、用户名、密码
      即可连接
    

    step4 在CENTOS远程桌面各种操作

    sh /opt/xxx/ETL_Designer.sh
      # 再执行原先依赖于OS图形化桌面环境的shell脚本文件~
    

    X 参考文献

    赞赏-支付宝二维码
    本文作者千千寰宇
    本文链接 https://www.cnblogs.com/johnnyzen
    关于博文:评论和私信会在第一时间回复,或直接私信我。
    版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
    声援博主:若本文对您有帮助,可点击右下角推荐一下。您的鼓励、【赞赏】(左侧赞赏支付码)是博主技术写作的重要动力!
  • 相关阅读:
    锁详解
    消息组件
    分布式锁
    jvm调优
    类加载
    垃圾回收
    Mysql
    redis
    悲观锁和乐光锁
    算法常见
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/15034470.html
Copyright © 2011-2022 走看看