补充:我相信这个问题现在被这个问题所包含: Using GNU Screen fully transparent and automatic
原始问题:
如果有办法通过 ssh 连接到机器并立即重新连接到特定的屏幕会话,那就太好了。你可以这样做:
laptop> ssh server.com screen -ls
它将显示 server.com 上可用的屏幕列表,如下所示 [1]:
123.pts-1
456.pts-2
然后你可以尝试这样做:
laptop> ssh server.com screen -dr pts-2
但这失败了,说“必须连接到终端”。您必须先 ssh 进入,然后在 server.com 上执行“screen -dr pts-2”,如果您的连接不稳定并且经常断开连接,这将是不好的。您希望能够在笔记本电脑上通过简单的“向上箭头输入”来恢复。(或者也许让它更加自动化。)
对于这个问题,我有一个非常巧妙的解决方案,我将把它作为答案发布,并希望它被否决而被遗忘,以支持处理这个问题的正确方法。
脚注:
[1] 或者,更好的是,如果您使用“ screen -S foo
”和“ screen -S bar
”之类的名称创建屏幕会话,那么您将获得一个更友好的列表,例如:
123.foo
456.bar
并且可以重新连接,例如“ screen -dr foo
”。
小屏教程,结合这个问题的答案:
登录到 server.com 并执行
screen -S foo
然后再也不会退出该会话。要从其他地方重新连接到它,请执行
ssh -t server.com screen -dr foo
列出要重新连接到的可用屏幕:
screen -ls
或者,当然,
ssh server.com screen -ls
远程检查 server.com 的可用屏幕。
我现在使用以下别名 (tcsh),基于 Jason 在下面的回答,连接到命名屏幕(如果存在)或创建并连接:
alias ssc 'ssh -t \!:1 "screen -S \!:2 -dr || screen -S \!:2"'