重新连接屏幕会话后无法打开显示屏

重新连接屏幕会话后无法打开显示屏

当我第一次启动screen会话时,X-display 可以正常工作。也就是说,我可以启动 X-apps,例如xterm等。

但是,当我screen从不同的 X 重新连接上一个会话时,X-display 不再起作用。例如,如果我启动xterm,我将得到:

xterm: Xt error: Can't open display: localhost:10.0

但是,我的 X-display(localhost:10.0)只有在我退出/暂停重新连接会话时才能正常工作screen。也就是说,它在重新连接会话之外工作screen,但在内部不工作。

如何使我的 X-display 在重新连接screen会话中也能工作?

答案1

在重新连接屏幕会话之前,

env | grep -E "SSH_|DISPLAY|XAUTHORITY" | sed -e "s/ .*//" > ~/.scrrc

(额外的sed是从 SSH_CLIENT 和 SSH_CONNECTION 中删除额外的参数,因为 bash 变量赋值不能包含未转义的空格。感谢 Velda 和 ruud 留下的修正意见。)或者,实际上,只需这样做就可以了:

env | grep -E "SSH_AUTH|DISPLAY|XAUTHORITY" > ~/.scrrc

重新连接后,在每个 screen 会话中,

source ~/.scrrc

将它们定义为别名,以方便每次输入。

相关内容