我使用 Cygwin/X 通过 Windows (10) 电脑 ssh 进入 Linux 计算机集群。昨天我正在使用 X11 转发进行 ssh 会话。突然,一个打开的 X 窗口开始挂起,最终我的 Windows 操作系统注意到了这一点并终止了 X Server 进程。
在这次会议之前,我总是必须使用终端命令:
export DISPLAY=:0.0
ssh -Y <user>@<remoteaddress>
设置连接,我将能够从本地显示器上的远程集群打开 X Windows。每当我将鼠标悬停在 Windows 系统托盘中的 Cygwin/XServer 图标上时,它总是显示Cygwin/X Server:0.0
。
然而,在 X Server 崩溃(以及随后的一些崩溃,只有从 Cygwin 重新安装 X11 软件包才停止)之后,我发现默认值是 now :3.0
(通过系统托盘找到)。
如果有帮助的话,我注意到 xwin 日志文件中的各种日志文件之间存在一些差异~/var/log/xwin/
:
在XWin.3.log
日志文件中以以下内容结尾:
winDeinitMultiWindowWM - Noting shutdown in progress [ 40421.515] (II) Server terminated successfully (0). Closing log file.
但在对应的0、1、2日志中,文件并没有这个结尾,而是以
//For 0:// IsOverrideRedirect: Failed to get window attributes [243761.625] OS has icon alpha channel support: yes
//For 1:// winInitMultiWindowWM - Could not open display, try: 1, sleeping: 5
//For 2:// winInitMultiWindowWM - DISPLAY=:2.0 [ 15564.281] winMultiWindowXMsgProc - DISPLAY=:2.0
虽然我的 ssh 仍然工作正常,但我想知道是否有人知道为什么 DISPLAYs :0.0、:1.0 和 :2.0 不再可访问/工作,以及我如何重置它们(以便能够再次使用 :0.0) ?
(如果我没有包含适当的信息,请告诉我,如果我的格式不太符合要求,请告诉我 - 这是我第一次在 Stackexchange 上发布问题!)
更新:
如果其他人正在阅读本文并遇到同样的问题。startxwin
对文件 进行一些分析后,C:\cygwin64\bin\
我发现 X Server 在启动时选择的 DISPLAY 选项取决于.X<number>-lock
文件是否存在C:\cygwin64\tmp\
(脚本从值 0 开始,如果找到.X0-lock
文件,则该数字递增,直到出现“找到“free”显示号码,然后使用该号码)。此外,该~\tmp
文件夹中还存在一个.X11-unix
文件夹,在正常操作中该文件夹应该为空(假设 X Server 关闭)。在这两种情况下,我都发现 DISPLAY 0、1 和 2 的文件存在于这些位置。通过卸载 Cygwin/X11,将这些文件移出文件夹C:\cygwin64\
(如果需要的话作为参考)并重新安装 Cygwin/X11,我成功地提示X Server 再次使用默认的 DISPLAY 变量启动:0.0
。
也就是说,我怀疑我是否做了任何事情来阻止这种情况再次发生 - 如果有人有任何想法,请分享你的想法!