Ubuntu下screen的使用
背景
系统管理员经常需要SSH或者telent远程登录到linux服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
简介
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
我们可以使用screen命令,来让保证退出ssh之后程序继续在后台跑。
安装
首先可以先查看是否安装screen,通过命令
1 | screen -ls |
若出现
1 | The program 'screen' is currently not installed. You can install it by typing: |
说明尚未安装,按照提示,通过命令,安装screen:
1 | sudo apt install screen |
使用方法
新建窗口
1)可直接通过命令screen
新建一个窗口,并进入窗口。但通过这种方式新建的窗口没有名字,只有系统分配给它的一个id。当需要恢复窗口时,只能通过id号来恢复。
2)通过命令screen -S name
,这样就可以新建一个名字为name的窗口,同样系统也会分配给它一个id,当恢复该窗口时既可以通过id号也可以通过窗口名。分离会话
退出当前新建的窗口,通过快键键Ctrl+a+d实现分离,此时窗口会跳出[detached]的提示,并回到主窗口。恢复会话窗口
首先查看当前有哪些screen窗口,通过命令:screen -ls
将列出窗口列表由以上可知,当前有两个窗口,其中test窗口已经被杀死,test2窗口分离。可以通过以下命令恢复test2窗口:
screen -r test2
或screen -r 27582
这样就返回了test2窗口杀死会话窗口
通过命令kill -9 threadnum
注意此处只能通过id号来杀死窗口。清除死去窗口
通过命令screen -wipe
这个命令将自动清除所有处于dead状态的窗口