利用screen来保持SSH连接

2017-12-02 13:31:25 6724

Screen被称之为一个全屏窗口管理器,用他可以轻松在一个物理终端上获得多个虚拟终端的效果。 

Screen功能说明: 

简单来说,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器,这意味着你能够使用一个单一的终端窗口运行多终端的应用。 Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的 telnet/SSH连接窗口那样。 Screen命令语法: 

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]  

Screen命令参数: 

-A -[r|R] 将所有的视窗都调整为目前终端机的大小。 

-c filename 用指定的filename文件替代screen的配置文件’.screenrc’. 

-d [pid.tty.host]  断开screen进程(使用该命令时,screen的状态一定要是Attached,也就是说有用户连在screen里)。一般进程的名字是以pid.tty.host这种形式表示(用screen -list命令可以看出状态)。 

-D [pid.tty.host]  与-d命令实现一样的功能,区别就是如果执行成功,会踢掉原来在screen里的用户并让他logout。 

-h <行数> 指定视窗的缓冲区行数。  

-ls或–list 显示目前所有的screen作业。 

-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。 

-p number or name  预先选择一个窗口。 

-r [pid.tty.host]  恢复离线的screen进程,如果有多个断开的进程,需要指定[pid.tty.host] -R     先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。 

-s shell   指定建立新视窗时,所要执行的shell。 

-S <作业名称>  指定screen作业的名称。(用来替代[pid.tty.host]的命名方式,可以简化操作). 

-v    显示版本信息。 

-wipe     检查目前所有的screen作业,并删除已经无法使用的screen作业。 -x    恢复之前离线的screen作业。  


Screen命令的常规用法: 

screen -D -r:连接一个screen进程,如果该进程是attached,就先踢掉远端用户并让他logout再连接 

screen -ls或者-list:显示存在的screen进程,常用命令 screen -m:如果在一个Screen进程里,用快捷键crtl+alt c或者直接打screen可以创建一个新窗口,screen -m可以新建一个screen进程。 

screen -dm:新建一个screen,并默认是detached模式,也就是建好之后不会连上去。  

screen -p number or name:预先选择一个窗口。  

Screen实现后台运行程序的简单步骤:  


 要进行某项操作时,先使用命令创建一个Screen: [linux@user~]$ screen -S test1  


接着就可以在里面进行操作了,如果你的任务还没完成就要走开的话,使用命令保留Screen: [linux@user~]$ Ctrl+a+d #按Ctrl+alt,然后再按d即可保留Screen [detached] #这时会显示出这个提示,说明已经保留好Screen了。

如果你工作完成的话,就直接输入: 


[linux@user~]$ exit    #这样就表示成功退出了 [screen is terminating]  


 如果你上一次保留了Screen,可以使用命令查看: 

[linux@user~]$ screen -ls 


There is a screen on: 9649.test1   (Detached)  

恢复Screen,使用命令: 

[linux@user~]$ screen -r test1 (or 9649)  

Screen命令中用到的快捷键  

Ctrl+alt c :创建窗口  

Ctrl+alt w :窗口列表  

Ctrl+alt n :下一个窗口  

Ctrl+alt p :上一个窗口  


Ctrl+alt 0-9 :在第0个窗口和第9个窗口之间切换  

Ctrl+alt K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)  

exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)  

Ctrl+alt d :退出当前终端,返回加载screen前的shell命令状态  

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: