使用Screen创建虚拟终端避免Linux远程断线
维护Linux的ssh工具在使用中,一旦遇到网络中断,则当前的shell就会自动关闭
当前的工作进度就会丢失,这对于远程升级等比较耗费时间的工作是非常不利的
对于远程调适代码也是很不可靠不安全的
为此,可以使用screen这个工具来解决这个问题。
对于最小化的linux,通常screen是不包含在系统内的。
需要查找操作系统的安装光盘,例如对于AS4update4
在其中的CD4.iso里边可找到screen-4.0.2-5.i386.rpm
到服务器上执行rpm -ivh screen-4.0.2-5.i386.rpm即可安装完成
打开一个ssh终端,执行screen,并回车,即可创建了一个新的虚拟终端
此时在上边执行的程序,如果遇到服务器断线是不会中断的,依然会在后台运行
当新的ssh连接到服务器后,执行screen -x 就可以连接到刚才的终端了
此外,利用screen建立的终端,还具有实时演示的效果。
比如两个用户A和B,分别从北京和上海使用SSH连接到一个服务器
A先执行Screen建立好虚拟终端,B执行screen -x连接上来
这时候的虚拟终端是唯一的,就像二人都在显示器前一样
A键入的命令和显示的结果,B都可以实时看到
B键入的命令和输入结果,A也可以实时看到
因此,利用Screen,还可以进行远程操作演示、培训等
注意:
1) 如果多次执行screen,则会建立多个虚拟终端。
当执行screen -x的时候,则会被询问,要连接到哪一个虚拟终端,如下所示:
[root@idc root]# screen -x
There are several suitable screens on:
1408.pts-0.idc (Attached)
1382.pts-4.idc (Attached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
[root@idc root]#
这个时候,要执行screen -x <终端名>,就可以连接到需要的终端,例如
screen -x 1382.pts-4.idc,即可连接到名为1382.pts-4.idc的虚拟终端上。
2) 退出虚拟终端的方法:首先用screen -x连接到终端,然后执行exit即可退出当前终端。
如何解决冲突问题?