• CentOS在SSH中运行GUI图形界面程序

    最近需要在CentOS中运行FreeRapid,是一个图形界面的网盘下载器。

    一般情况来说,设置好JAVA_HOME、PATH等系统环境变量后,运行以下命令即可:

    java -jar frd.jar > /dev/null 2>&1 &

    但我的CentOS是无桌面环境的服务器系统,那怎么配置运行呢?步骤如下。

    首先,打开/etc/ssh/sshd_config,修改:

    X11Forwarding yes
    X11UseLocalhost yes

    然后重启sshd:

    service sshd restart

    重新登入ssh,若出现“WARNING! The remote SSH server rejected X11 forwarding request.”,则需要安装以下组件:

    yum install xorg-x11-xauth xterm

    若运行Java程序时出现“No X11 DISPLAY variable was set, but this program performed an operation which requires it.”,则:

    export DISPLAY=localhost:10.0

    localhost:10.0只是一个常用的例子,具体要根据用户本机的X11 server来设定;如果用Xmanager,在SSH的属性设置的Tunneling中forward到Xmanager了,登录SSH会自动设置好这个系统环境变量的。

    若出现“libXtst.so.6: cannot open shared object file: No such file or directory”,则安装必要组件:

    yum install libXi libXp libXtst

    还有个问题,SSH中用screen是很方便的,但是screen中运行X11图形界面程序就很麻烦了,解决方案有以下几个:

    1、用proxy-display这个小脚本,不过兼容性有点问题。https://blog.nelhage.com/2010/05/using-x-forwarding-with-screen/

    2、用xpra,号称是“X窗口环境中的screen”,相关网址是http://xpra.org

    3、不用X11转发,改用VNC进行远程图形界面传输,这是个很好的方案。还可以弥补X11 forwarding的性能卡顿问题。这个解决方案我会整理另一篇文章,参见《CentOS使用VNC查看X11图形界面窗口》:。

    分类: 所谓技术 | 标签: ,,,,,