参考资料
资料来源大部分是 man 手册,与自带的帮助信息。
screen -h
man screen
指令格式
在 man 手册,和 screen -h
中都有写
screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]
简介
曾经使用阿里云,腾讯云,但是下载一些大的文件,常常要花很长时间,中途,ssh关闭了,导致没有下载完成。说明下载过程中ssh并不能断开。所以想到使用 screen
,screen
使得下载能够在后台下载,即使断开了ssh,下载仍在继续。对于后期服务器运维来说是很大的帮助。
安装方法:
apt-get install screen
一些screen的状态:
Attached: 表示当前正处于该screen中
Detached: 表示该screen正处于离线状态(后台)
Dead: 表示该screen已被kill
一些选项
screen有一些快捷键的选项,但是我不常用,只是对screen的指令较为熟悉,下面主要介绍screen的指令。
1.创建,创建一个sockname的screen窗口
-S sockname
2.专门为一个shell指令,创建一个sock
-s shell指令
3.退出(Detach),退出当前的screen窗口
-d
4.查看目前已有的screen窗口
-ls
5.删除已死亡(dead)的screen
-wipe
6.恢复指定的离线screen
-r sockname
7.恢复上一个screen
-x
8.先试图恢复离线的作业。若找不到离线的作业,即建立新的screen窗口
-R sockname
9.退出(退出,并删除screen)
$ exit
演示样例
1.查看screen目前已有的窗口
查看screen目前已有的窗口
screen -ls
输出如下
No Sockets found in /var/run/screen/S-lee.
表示目前没有创建screen的窗口
2.创建,创建一个sockname的screen窗口
假设创建一个bmelab的screen窗口
screen -S bmelab
会发现,之前的指令已经消失了,表示已经进入了bmelab的screen窗口。
检验方式:
screen -ls
输出如下
There is a screen on:
12558.bmelab (2019年03月24日 14时54分34秒) (Attached)
1 Socket in /var/run/screen/S-lee.
Attached 表示目前处于激活状态,即目前的窗口就是bmelab窗口。
3.退出当前的 screen
退出当前的 screen
screen -d
会发现目前的界面又换了。
查看bmelab的状态
screen -ls
输出如下
There is a screen on:
12558.bmelab (2019年03月24日 14时54分35秒) (Detached)
1 Socket in /var/run/screen/S-lee.
Detached表示当前的bmelab处于离线状态
4.重新进入bmelab这个screen窗口
重新进入bmelab这个screen窗口
screen -r bmelab
会发现窗口又切换回了bmelab中。可以像上面的方法进行检测。
5.当我们在bmelab这个screen窗口中,并且想删除这个窗口使用
当我们在bmelab这个screen窗口中,并且想删除这个窗口使用
exit
检测方式如上。
6.当我们处于自己的窗口下,并且想删除bmelab中的窗口时。
窗口信息如下
删除方式
kill -9 15313
查看窗口状态
dead 表示该线程已被杀死。
清除已杀死的screen窗口方式
screen -wipe
再次查看窗口状态