补充:我相信这个问题现在归入了这个问题: 完全透明地自动使用GNU Screen
另请参阅此相关问题:https:
//superuser.com/questions/147873/ssh-sessions-in-xterms-freeze-for-many-minutes-whenever-they-disconnect
原始问题:
如果有一种方法可以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"'
Greg Hewgill.. 59
该-t
选项是否符合您的要求?
-t Force pseudo-tty allocation. This can be used to execute arbi- trary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.
所以:
laptop> ssh -t server.com screen -dr pts-2
这似乎适用于我的安装.
该-t
选项是否符合您的要求?
-t Force pseudo-tty allocation. This can be used to execute arbi- trary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.
所以:
laptop> ssh -t server.com screen -dr pts-2
这似乎适用于我的安装.