用screen解决TTY断线后重连的问题
A: secureCRT链接linux服务器时,网络断线了,但是服务器上的tty还没退出,我想重新连接到原来那个tty,可以做到么?
B: 可以啊,你可以安装一个Screen,就可以享受他给你带来的方便了。
A:如何创建一个虚拟shell环境?
B:screen -S MyScr (其中“MyScr”是你为这个虚拟shell环境起的名字,可以自定义)
输入回车之后,你就可以在这个虚拟的shell环境中工作了,你工作的内容都会被一直保留下来。试试吧,在里面敲几个命令,运行几个程序,和平常没有两样吧。
A: 如何退出工作环境呢?
B:如果想要退出要怎么办呢?只要按下Ctrl+A,然后按d,就可以退出刚刚建立的虚拟shell环境了(名字是MyScr)
若干时间后,你又想继续刚才的工作了,只要再敲:
screen -r MyScr
就可以看到刚刚的界面了。怎么样,还是很简单适用的吧,呵呵。
A: 可以不给他起名么?
B:当然,你不给这个虚拟shell环境命名也是没问题的,如果只有一个虚拟环境的话,也可以这样用
screen(回车)
工作……退出……
screen -r
继续工作
系统还会默认用PID号码表识screen虚拟的shell环境。
例如,我直接用screen命令建立了一个虚拟环境,退出之后,我想查看虚拟环境的情况:
A:如何察看当前有哪些Screen工作环境呢?
B:screen -list
输出应该是类似下面的:
There is a screen on:
25202.pts-1.firewallX (Detached)
1 Socket in /tmp/screens/S-root.
其中:
“25202”是这个虚拟环境的PID。不信的话,可以ps查看一下,呵呵~
“pts-1”是说你的ssh客户端登录的系统端口号是pts-1
“firewallX”是我这台主机的名字
如果你建立了很多虚拟环境,又没有为他们命名的话,就只能用PID来识别他们了。(记住这个PID号码太烦了吧,还是名字好!)
例如,我现在有两个screen建立的虚拟环境,我输入:
screen -list
输出为:
There are screens on:
25202.pts-1.firewallX (Detached)
25403.pts-1.firewallX (Detached)
2 Sockets in /tmp/screens/S-root.
那么,我如果想进入第二个虚拟环境的话,我可以用什么命令呢?答案如下:
screen -r 25403
A:如何创建新的screen呢?
B:如果我登录进去之后,用ctrl-a c:再创建一个新的虚拟Shell环境,那么这个环境就是在PID为25403的虚拟环境里面的子虚拟环境。
A:如何彻底退出一个screen工作环境呢?
B:Ctrl-D
A:如何在进入工作环境的时候就自动的运行screen呢?
B:可以在~/.bash_profiler里最下面一行添加一句screen
注意事项:关闭secureCRT之前,请先使用 Ctrl-D 退出screen