以下是手动解决方案,但是当您远程登录时,没有理由不能使用别名或脚本自动完成它。
假设您的本地 shell 适当地设置了 DISPLAY 变量,您可以screen -X
在连接之前使用将以下命令发送到远程屏幕。
# set future remote shells started by screen to have the correct XDISPLAY
% screen -X "setenv XDISPLAY $DISPLAY" #...
# set up the keystroke F1 to update the XDISPLAY in current shells
% screen -X "bindkey -k k1 stuff export XDISPLAY=$DISPLAY\015" #...
如果您知道您的所有窗口都留在了 shell(不是正在运行的编辑器或类似的)中,您可以使用:at
更改XDISPLAY
而不是键绑定:
# update the XDISPLAY in all current windows
% screen -X "at % stuff export XDISPLAY=$DISPLAY\015" #...
或者,如果您知道某种获取父进程的环境变量值的方法,那么您可以将它与 shell 的提示挂钩一起使用来获取 SCREEN 的 XDISPLAY 值(由 setenv 设置)并为 shell 更新它。