Linux Screen 会话管理一站式指南

在远程运维或开发过程中,我们常遇到这样的窘境:通过 SSH 连接服务器运行一个耗时脚本(如爬虫、模型训练或 WebSocket 服务),结果因为网络波动或电脑休眠导致 SSH 断开,正在运行的任务也随之“死掉”。

Screen 就是解决这个问题的核心神器。它能让你的程序在后台“长生不老”,即使你关掉电脑,任务依然在服务器上稳健运行。

一、 Screen 基础指令

1. 会话生命周期管理

这是最常用的四条命令,涵盖了从创建到销毁的全过程。

命令 功能描述 应用场景
screen -S <name> 新建会话 开始一个新项目,如 screen -S wss_server
screen -ls 查看列表 确认后台有多少任务在跑,查看其 PID 和状态
screen -r <name/PID> 恢复会话 回到之前的任务界面查看日志或继续操作
screen -d <name> 强制离线 当会话显示 Attached 却连不上时,先将其踢下线

2. 会话内快捷键

核心规则:进入 Screen 会话后,所有快捷键都需要先按 Ctrl + a 作为前缀指令。

  • Ctrl + a + d (Detach)最优雅的退出。 将会话切入后台运行,人走程序留。
  • Ctrl + a + k (Kill):直接结束当前会话及其中运行的所有程序。
  • Ctrl + a + [:进入回滚模式。之后可以用方向键或 PageUp/Down 翻看历史日志。

二、 进阶技巧与避坑指南

1. 解决 "Already Attached" 报错

当你尝试 screen -r 恢复会话,却提示该会话已被占用时,不需要先 -d-r。直接使用以下组合命令即可“暴力夺取”控制权:

2. 外部强制销毁

如果你确定某个会话不再需要,甚至不想进入它的界面,可以直接在主终端执行:

3. 给日志留个“底”

运行重要脚本时,建议配合 -L 参数开启自动日志记录:

三、 实战场景:配合 Python 服务使用

在部署 WebSocket 服务(如 wss_server.py)时,推荐的工作流如下:

  1. 启动screen -S wss
  2. 运行python -u wss_server.py(使用 -u 参数确保日志实时刷新,不进缓冲区)
  3. 离开:按下 Ctrl + a 然后按 d
  4. 断开 SSH:放心关掉你的终端工具。
  5. 回归:下次登录后执行 screen -r wss 检查任务状态。

四、 总结

Screen 就像是给你的 SSH 增加了一个“存档”和“后台运行”的功能。

  • 创建用 -S
  • 离开用 Ctrl+a, d
  • 回来用 -r
  • 清理用 -lsexit

虽然 Screen 很好用,但对于生产环境的长期服务,建议后续学习 Systemd 进行更规范的服务化管理。

这些信息可能会帮助到你: 关于本站 | 侵权删除 | 进站必看

文章名称:Linux Screen 会话管理一站式指南
文章链接:https://www.bysjb.cn/linux-screen.html
THE END
分享
二维码
打赏
< <上一篇
下一篇>>