LSF bsub invalidDisplay::xtInitialize::XtToolkitError::Can't open display

集群管理 0 1898 团子精英 收藏

在日常使用linux操作系统进行图形界面显示的时候,经常使用到DISPLAY这个概念

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

DISPLAY=:0.0

在集成电路设计领域,通常工程师采用Linux系统进行研发,DISPLAY成为了重要的技术环节。使用X11 Forward进行转发是显示图形界面的必备工具。

*此处警告:请勿手动修改DISPLAY参数,可能会导致一系列乱七八糟的问题。

如何配置X11 forwading转发请自行搜索。

本文讲解最新遇到的问题,关于本机直连显示器导致无法进行X11转发的问题

在本机使用VGA/DVI/HDMI直连显示器,使用ssh -X 进行ssh隧道转发,DISPLAY是没有问题的,但是使用lsf的bsub -Ip 参数进行转发,则有些情况下会直接显示如下错误:

invalidDisplay::xtInitialize::XtToolkitError::Can't open display

1.jpg

同理,使用-IS 或者-Is或者-XF参数,同样会报DISPLAY相关的error

经过验证在一下情况会出现此类问题:

1、Centos/Rehdat6的操作系统,无论是什么桌面,都会出现此类问题

2、Centos/Redhat7的操作系统,使用默认的gnome不会出现此类问题

3、Centos/Redhat7的操作系统,切换lightdm及xfce桌面会出现此类问题

经过和一些朋友的讨论。得出结果,是gdm或者lightdm的配置问题导致X程序在启动的时候配置或默认了-nolisten tcp参数导致。

使用命令查看具体内容,此处tty代表为控制台登录,如果是其他方式登录,默认显示为pts

ps -ef|grep X |grep tty

2.jpg

如何解决:

解决此问题需要配置桌面管理器,此处注意,不是桌面,而是桌面管理器,常见的桌面管理器为gdm或者lightdm

1、此问题是gdm的配置,解决如下

/etc/gdm/custom.conf
[security]
DisallowTCP=false

2、此问题是lightdm的配置,解决如下

/etc/lightdm/lightdm.conf
[SeatDefaults]
xserver-allow-tcp=true
xserver-command=X -listen tcp

配置后,建议重启服务器

启动登录后,使用命令查看,已经没有-nolisten tcp参数

3.jpg

使用命令查看X server是否处在监听状态:

netstat -anp |grep X

查看到监听的状态即可。配置完毕,再次使用bsub提交即可正常显示。

相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码