-->
screen是一个用于管理远程会话的程序,在很多时候会遇到这种情况,我们通过ssh登陆到某台服务器并同时启用多个需要占用当前终端的会话,这时候就要开多个ssh连接,多个窗口切来切去很是不便。然而我们使用screen的话就不必这个麻烦了,我们只要通过命令crtl+a
c就可以开一个新的虚拟终端,crtl+a a切到最近使用的终端,ctrl+a [0-9]切到对应的终端上去。
screen还有一个很酷的功能就是在你离开的时候仍可保留会话的状况,当你重新登陆时恢复原会话。
以下是常用的命令:
启用screen
[supersun@supersun.biz
~]$ screen
恢复会话
screen -R
列出可用的会话
[supersun@supersun.biz ~]$ screen -ls
There is a screen on:
763.pts-31.supersun.biz (Attached)
1
Socket in /tmp/uscreens/S-supersun.
可以使用-r恢复指定会话,在此发现有两个会话死掉了:
[supersun@supersun.biz
status]$ screen -r
There
are screens on:
19875.pts-7.supersun.biz (Dead ???)
3964.pts-15.supersun.biz (Dead ???)
Remove
dead screens with 'screen -wipe'.
There
is no screen to be resumed.
删除死掉的会话:
[supersun@supersun.biz
status]$ screen -wipe 3964.pts-15.supersun.biz
There
is a screen on:
3964.pts-15.supersun.biz (Removed)
1
socket wiped out.
No
Sockets found in /tmp/uscreens/S-supersun.
断开ssh客户端时,一个screen会话还没有被screen释放:
[supersun@supersun.biz
~]$ screen -r
There
is a screen on:
12381.pts-6.supersun.biz (Attached)
There
is no screen to be resumed.
找到那个进程,kill掉:
[supersun@supersun.biz
~]$ ps aux |grep screen
supersun 6416
0.0 0.0 2708
supersun 10426
0.0 0.0 2060
[supersun@supersun.biz
~]$ kill -9 6416
[supersun@supersun.biz
~]$ screen -r 12381.pts-6.supersun.biz
当你现在现要离开,而不想结束当前的会话的时候,只要关闭ssh客户端就行,不要使用exit。
想了解关于screen的其他功能,可以参看下面这篇文章:

测试匿名评论