当使用 ssh 远程登陆到服务器,使用命令执行一个耗时任务时,常会因为网络不稳定或 AIStation 网页刷新而与服务器的连接断开,在重新连接后,命令和打印的输出内容不见踪影,此时可以用 screen 工具解决这个问题。
使用 screen 后,执行一个耗时任务,只需要连到服务器敲一下命令,然后断开与服务器的连接,这个任务依然在服务器上运行,重新与服务器建立 ssh 连接后依然能看到它在运行。
- 安装 screen,Ubuntu 和 Debian 系统的安装命令:
apt -y install screen
或apt install screen
,在安装前可能需要更新 apt,键入apt update
即可更新本地包索引 - 创建窗口,
screen -S [screen name]
,进去之后是一个全新的界面 - 执行耗时任务,键入自己的命令,比如
ping baidu.com
- 退出当前窗口,Ctrl+A+D,回到终端(上一个界面)
- 查看所有正在运行的窗口(返回 name 和 ID):
screen –ls
- 重新进入指定的窗口:
screen –r [ID or screen_name]
- 终止窗口:
screen –S [ID or screen_name] -X quit
示例:
- 创建一个窗口:
screen –S test
- 运行示例程序:
python test.py
- 退回终端:Ctrl+A+D(不能使用 exit 命令)
- 此时再退出登录或者连接中断不影响
- 重新打开窗口:
screen –r test
(不记得窗口名可以screen -ls
查看)
在进入 screen 会话中如果要使用鼠标进行上下滚动,必须要先进入该 screen 的回滚模式才能进行上下滚动
- 进入回滚模式:首先按 Ctrl+A,然后按 Esc
- 使用鼠标滚轮进行上下滑动
- 使用 Esc 即可离开回滚模式
在使用screen -r (id)
重新连接程序 screen 界面时,出现:There is no screen to be resumed matching xxxxxx。这是因为,突然断网,之前的 screen 还是处于打开状态的,1 个 screen 无法同时打开 2 次,所以无法正常打开 screen。
方法如下:
首先使用screen -d xxxx(id)
退出
然后使用screen -r xxx(id)
重新连接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具