您是否遇到过这样的情况:在远程服务器上执行一个长时间运行的任务,然后连接意外断开,SSH会话终止,正运行的任务也随之丢失。有一个叫Screen的工具可以为我们解决这一问题。GNU Screen是一款由GNU计划开发的终端复用器(terminal multiplexer),在Screen中运行的进程在窗口不可见甚至断开连接时都会继续运行。
Screen包在大多数Linux发行版中都是预安装的,首先检查是否已安装:
$ screen --version
如果没有安装,可以用包管理器轻松安装:
# Ubuntu and Debian
$ sudo apt update
$ sudo apt install screen
# 创建并进入一个Screen会话
$ screen -S [NAME]
# 从Screen会话分离(回到主会话)
Ctrl + A + D
# 列出所有Screen会话(包含名字和ID)
$ screen -ls
# 回到Screen会话
$ screen -r [NAME]
# 关闭Screen会话
$ sudo kill [ID]