为何要使用Screen?
2018-11-29 本文已影响10人
理子
- 原因:
- 因为关闭ssh远程窗口后,运行的程序也会结束。
- 在执行一个程序的同时执行其他程序。
- 常见使用:
//创建并命名
screen -S session_name
//恢复到该session
screen -r session_name
//查看所有screen会话
screen -ls
//删除会话
screen -wipe session_name
//将指定的screen作业离线
screen -d session_name
//退出 或者ctrl+d
exit
- 快捷键
给screen发送命令使用了特殊的键组合C-a。这是因为我们在键盘上键入的信息是直接发送给当前screen窗口,必须用其他方式向screen窗口管理器发出命令,默认情况下,screen接收以C-a开始的命令。这种命令形式在screen中叫做键绑定(key binding),C-a叫做命令字符(command character)。
C-a ? 显示所有键绑定信息
C-a w 显示所有窗口列表
C-a C-a 切换到之前显示的窗口
C-a c 创建一个新的运行shell的窗口并切换到该窗口
C-a n 切换到下一个窗口
C-a p 切换到前一个窗口(与C-a n相对)
C-a 0..9 切换到窗口0..9
C-a a 发送 C-a到当前窗口
C-a d 离线screen会话
C-a k 杀掉当前窗口
C-a [ 进入拷贝/回滚模式
- 会话共享
还有一种比较好玩的会话恢复,可以实现会话共享。假设你在和朋友在不同地点以相同用户登录一台机器,然后你创建一个screen会话,你朋友可以在他的终端上命令:
[root@TS-DEV ~]# screen -x
这个命令会将你朋友的终端Attach到你的Screen会话上,并且你的终端不会被Detach。这样你就可以和朋友共享同一个会话了,如果你们当前又处于同一个窗口,那就相当于坐在同一个显示器前面,你的操作会同步演示给你朋友,你朋友的操作也会同步演示给你。当然,如果你们切换到这个会话的不同窗口中去,那还是可以分别进行不同的操作的。
- 会话锁定与解锁
Screen允许使用快捷键C-a s锁定会话。锁定以后,再进行任何输入屏幕都不会再有反应了。但是要注意虽然屏幕上看不到反应,但你的输入都会被Screen中的进程接收到。快捷键C-a q可以解锁一个会话。
也可以使用C-a x锁定会话,不同的是这样锁定之后,会话会被Screen所属用户的密码保护,需要输入密码才能继续访问这个会话。
- Reference:
- SSH断开后重新连接
https://blog.csdn.net/cheviko/article/details/50428348 - linux screen工具(荐)
https://www.cnblogs.com/lpfuture/p/5786843.html - linux 技巧:使用 screen 管理你的远程会话(荐)
https://www.ibm.com/developerworks/cn/linux/l-cn-screen/
- 解决screen状态为Attached连上不的问题
-
当你挂起screen,下次想连上screen的时候,有时候会出现screen session的状态为Attached而怎么连也连不上的情况。下面给出解决方法。
-
列出状态为Attached的session id。
1. screen -ls
2. screen -D -r <session-id>
解释:-D -r 先踢掉前一用户,再登陆。
8.删除一个screen
screen -ls
122128.test (12/04/2017 08:35:43 PM) (Attached)
//删除它screen -S session_name -X quit
screen -S 122128 -X quit