通过SSH连接搬瓦工VPS时,一旦终端关闭或网络中断,正在运行的程序会被终止。Screen 和 Tmux 可以创建持久化的终端会话,即使断开SSH连接,程序也能在后台继续运行,重新连接后可恢复到之前的工作状态。
Tip: Screen 和 Tmux 功能类似,二选一即可。Tmux 功能更强大,Screen 更简单易上手。
安装 Screen:
# Ubuntu/Debian apt install screen -y # CentOS yum install screen -y
Screen 常用命令:
| 命令 | 说明 |
|---|---|
screen -S name | 创建一个名为 name 的会话 |
screen -ls | 列出所有会话 |
screen -r name | 重新连接到指定会话 |
screen -d name | 强制分离指定会话 |
screen -d -r name | 先分离再重连(会话被占用时) |
screen -X -S name quit | 终止指定会话 |
Screen 快捷键(会话内使用):
| 快捷键 | 说明 |
|---|---|
Ctrl+A, D | 分离当前会话(detach),回到主终端 |
Ctrl+A, C | 在当前会话中创建新窗口 |
Ctrl+A, N | 切换到下一个窗口 |
Ctrl+A, P | 切换到上一个窗口 |
Ctrl+A, K | 关闭当前窗口 |
Ctrl+A, [ | 进入复制/滚动模式(用方向键翻页) |
Screen 使用实例:
# 1. 创建一个名为 "web" 的会话 screen -S web # 2. 在会话内运行你的程序 python3 app.py # 3. 按 Ctrl+A 然后按 D 分离会话 # 此时可以安全关闭SSH,程序继续运行 # 4. 下次SSH登录后,重新连接 screen -r web
安装 Tmux:
# Ubuntu/Debian apt install tmux -y # CentOS yum install tmux -y
Tmux 有三个核心概念:Session(会话)、Window(窗口)、Pane(窗格)。一个会话可以包含多个窗口,一个窗口可以分割为多个窗格。
Session(会话)管理:
| 命令 | 说明 |
|---|---|
tmux new -s name | 创建名为 name 的新会话 |
tmux ls | 列出所有会话 |
tmux attach -t name | 连接到指定会话 |
tmux kill-session -t name | 终止指定会话 |
tmux rename-session -t old new | 重命名会话 |
Tmux 快捷键(默认前缀键是 Ctrl+B):
| 快捷键 | 说明 |
|---|---|
Ctrl+B, D | 分离会话(detach) |
Ctrl+B, C | 创建新窗口 |
Ctrl+B, N | 下一个窗口 |
Ctrl+B, P | 上一个窗口 |
Ctrl+B, 0-9 | 切换到指定编号的窗口 |
Ctrl+B, % | 左右分屏 |
Ctrl+B, " | 上下分屏 |
Ctrl+B, 方向键 | 在窗格间切换 |
Ctrl+B, X | 关闭当前窗格 |
Ctrl+B, Z | 最大化/还原当前窗格 |
Ctrl+B, [ | 进入复制模式(按q退出) |
Tmux 使用实例:
# 1. 创建会话 tmux new -s work # 2. 左右分屏:Ctrl+B 然后按 % # 3. 左侧运行程序,右侧查看日志 # 4. 按 Ctrl+B 然后按 D 分离会话 # 5. 重新连接 tmux attach -t work
创建或编辑配置文件 ~/.tmux.conf,添加常用优化:
# 设置前缀键为 Ctrl+A(和Screen一致,更顺手) set -g prefix C-a unbind C-b bind C-a send-prefix # 开启鼠标支持(可用鼠标点击窗格、滚动) set -g mouse on # 窗口编号从1开始 set -g base-index 1 setw -g pane-base-index 1 # 设置历史记录行数 set -g history-limit 10000 # 快捷分屏(更直观的按键) bind | split-window -h bind - split-window -v
保存后重新加载配置:
# 在tmux内执行 tmux source-file ~/.tmux.conf
| 功能 | Screen | Tmux |
|---|---|---|
| 窗格分屏 | 支持(操作较复杂) | 支持(操作简便) |
| 鼠标支持 | 有限 | 完善 |
| 配置文件 | ~/.screenrc | ~/.tmux.conf |
| 默认前缀键 | Ctrl+A | Ctrl+B |
| 状态栏 | 需配置 | 默认显示 |
| 学习曲线 | 较低 | 略高 |
| 社区活跃度 | 维护模式 | 活跃开发中 |
如果只需要简单的后台运行功能,Screen 足够使用。如果需要分屏操作和更丰富的功能,推荐 Tmux。
对于需要长期运行的服务程序,更推荐配置为 Systemd 服务(详见Systemd服务管理与自启配置),这样可以实现开机自启和自动重启。Screen/Tmux 更适合临时性的长时间任务。
Tip: 购买搬瓦工VPS时使用优惠码 NODESEEK2026 可享 6.77% 折扣,详见优惠码使用教程。更多教程请查看新手教程。