当前位置:  开发笔记 > 运维 > 正文

SSH,屏幕和XDISPLAY

如何解决《SSH,屏幕和XDISPLAY》经验,为你挑选了1个好方法。

我使用屏幕来保持我的工作会话并从多台机器连接到同一会话.我如何设置SSH和屏幕使得XDISPLAY变量里面我一贯的屏幕会始终设置为我目前无法连接的机器吗?

即.我在工作时启动屏幕会话并使用gvim,它使用在我的工作机器上运行的X服务器.后来,我从家里连接到同一个会话,也想使用gvim.但是这次,我希望gvim在家用机器上使用X服务器.我意识到每次从不同的机器连接时我都可以手动更新XDISPLAY,但我宁愿拥有自动化系统.

如果我可以在运行时 gvim从我的工作机器移动到我的家用机器,那么奖励积分.我试过xmove但是永远不能让它玩得很好.



1> rampion..:

以下是手动解决方案,但是您无法使用别名或脚本在远程登录时自动完成此操作.

假设您的本地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更新它.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有