我的问题是如何最好地管理两层“屏幕”会话:
在我的研究所,我们有一个用于数值模拟的计算集群。要登录该集群,必须通过负载平衡器,该负载平衡器将用户分配到 4 个控制节点(然后他们可以在那里启动实际集群上的作业并进行后处理),因为登录过程有点复杂(3 个密码和一次用户交互),我想保持一个会话打开,我也可以在家里恢复。这意味着在我的工作站上运行屏幕。另一方面,我想在控制节点上使用一个 ssh 连接拥有多个屏幕,所以我必须在节点上运行屏幕。但如果我这样做,我只能控制第一个屏幕(例如通过“crtl+a”和“space”)。仅使用一ssh 连接?谢谢您的帮助!
菲利普
答案1
在工作站上,您可以将转义字符更改为 ctrl+a 以外的其他字符,例如 ctrl-b。为此,请将以下行添加到 .screenrc 文件中:
escape ^Bb
这样,您可以重新连接到工作站上的屏幕会话,并使用 ctrl-a 作为转义字符将命令发送到控制节点上运行的屏幕会话,同时使用 ctrl-b 发送命令到工作站上的会话。
答案2
你问了两个问题:
- 多屏幕
除了像其他人提到的那样更改转义字符外,您还可以查看tmux
,它非常类似于屏幕,只是更好。最大的好处是您可以同时连接多个客户端,因此您也可以在家中连接时让工作站上的客户端保持打开状态。
- 只有一个ssh连接
鉴于您希望从工作站进行控制并且必须登录到集群,我认为这是不可能的。