1 为何要用screen
程序员SSH或者telent远程登录到linux服务器,运行一些需要很长时间才能完成的任务,比如系统备份等。
通常情况下我们都是为每一个这样的任务开一个远程终端窗口,但它们执行的时间太长了,而且必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉。
2 screen简介
我们可以使用screen,保证退出ssh之后,让程序继续在后台跑。
3 安装screen
首先查看是否安装screen,通过命令
screen -ls
若出现
The program 'screen' is currently not installed. You can install it by typing:
sudo apt install screen
说明尚未安装,按照提示,通过命令,安装screen:
sudo apt install screen
4 使用screen
4.1 新建窗口
1)可直接通过命令 screen
新建一个窗口,并自动进入窗口。
通过这种方式新建的窗口没有名字,只有系统分配给它的一个id。
当需要恢复窗口时,只能通过id号来恢复。
进入screen之后需要重新激活环境!
2)通过命令screen -S name
,新建一个名字为 name 的窗口,同样系统也会给它分配一个id。
当恢复该窗口时既可以通过id号,也可以通过窗口名name。
进入screen之后需要重新激活环境!
4.2 分离会话/回到主窗口
通过快键键Ctrl+A+D实现窗口分离,即退出当前screen窗口,此时窗口会跳出类似于[detached from 9282.wyx]
的提示,并回到主窗口。
当一个终端没分离,在远程终端想要操作它时,可使用screen -d name/threadnum
进行远程分离
4.3 恢复会话窗口
首先查看当前有哪些screen窗口,通过命令:
screen -ls
将列出窗口列表:
由以上可知,当前有5个窗口,其中34730.wc
窗口已经被杀死,其余窗口分离。
若想返回9282.wyx
窗口,可使用命令,
screen -r wyx
或
screen -r 9282
解释:
detached:相当于最小化窗口
attached:相当于当前窗口
dead:相当于死了的窗口
4.4 杀死会话窗口
通过命令kill -9 threadnum
杀死会话窗口。
注意: 此处只能通过id号来杀死窗口。
4.5 清除死去窗口
通过命令screen -wipe
清除死去窗口,也就是清除所有处于dead状态的窗口。