日常开发中,我们经常需要在 Linux 服务器上运行长时间的任务(比如模型训练、数据处理、脚本执行),但 SSH 连接一旦断开,进程就会被终止 —— 这时候 Screen 工具就能完美解决这个问题!Screen 是一款终端复用工具,能让进程在后台持续运行,即便断开 SSH 也不中断。

本文记录我在 Ubuntu 环境下安装 Screen 的完整过程,以及遇到的两个典型问题和解决方法,适合新手参考。

个人认为screen比tmux更好用一些,有些服务器上没有screen,随手记录一下安装过程。

一、Screen 工具核心价值

  1. 会话保持:SSH 断开后,Screen 内的程序仍在后台运行;
  2. 终端复用:一个 SSH 连接可以创建多个独立的终端会话,互不干扰。对于需要长时间运行任务的开发者来说,Screen 是必备工具之一。

二、安装过程:遇到的问题与解决方法

 首先查看是否安装screen

screen --version

如果已安装会显示screen的版本信息

Screen version 4.09.00 (GNU) 30-Jan-22


如果未安装会提示不存在

-bash: screen: command not found
 

问题 1:执行 sudo 安装提示 “command not found”

使用sudo提权安装,执行命令:

sudo apt-get install screen

结果系统报错:

bash: sudo: command not found
原因与解决

报错的核心原因是:当前已经以root用户(最高权限)登录,sudo是普通用户提权的工具,root 用户无需(也可能未安装)sudo,直接去掉sudo即可:

apt-get install screen -y

问题 2:提示 “E: Unable to locate package screen”

去掉sudo后执行安装,又遇到新报错:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package screen
原因与解决

这个报错是因为本地软件源列表过期,系统无法找到 screen 包的最新位置,解决步骤分两步:

  1. 更新软件源列表 先同步最新的软件包索引,确保系统能找到 screen 的安装路径:
apt-get update -y

(注:如果更新过程中出现部分源连接失败的警告,可忽略非核心报错,不影响后续安装)

  1. 重新执行安装命令更新源后,再次执行安装:
apt-get install screen -y

验证安装是否成功

安装完成后,执行以下命令检查版本,确认安装成功:

screen --version

若输出类似以下内容,说明安装成功:

Screen version 4.09.00 (GNU) 30-Jan-22

三、Screen 核心常用命令

命令作用
screen -S 会话名创建自定义名称的会话(如screen -S train_model,方便识别)
Ctrl + A + D分离当前会话(程序仍在后台运行,可安全断开 SSH)
screen -ls列出所有正在运行的 Screen 会话
screen -r 会话名/ID恢复指定会话(只有一个会话时,直接screen -r即可)
exit在会话内执行,关闭当前会话(程序也会终止)
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐