tmux 会话保活实战:SSH 断线也不丢工作区

举报
yd_281047095 发表于 2026/11/08 09:21:41 2026/11/08
【摘要】 远程登录服务器最恼人的事,不是命令写错,而是网一抖,正在跑的编译、日志跟踪和半写的配置一起没了。tmux 把终端会话留在服务器上:你自己掉线,它还在;再连回去,屏幕、分屏和滚动历史都还在原处。安装与第一次进入多数发行版软件源里就有:# Debian/Ubuntusudo apt-get update && sudo apt-get install -y tmux# RHEL/CentOS/R...

远程登录服务器最恼人的事,不是命令写错,而是网一抖,正在跑的编译、日志跟踪和半写的配置一起没了。tmux 把终端会话留在服务器上:你自己掉线,它还在;再连回去,屏幕、分屏和滚动历史都还在原处。

安装与第一次进入

多数发行版软件源里就有:

# Debian/Ubuntu
sudo apt-get update && sudo apt-get install -y tmux
# RHEL/CentOS/Rocky
sudo yum install -y tmux

装好后直接开一个有名字的会话,比默认的数字编号好找:

tmux new -s ops

之后日常进出只用两句:

# 暂时离开,会话继续在后台跑
# 快捷键:Ctrl-b 再按 d(detach)
tmux attach -t ops

tmux ls 能列出当前所有会话。同名会话已经存在时,用 attach 而不是再 new,避免误开一份空会话。

最常用的快捷键

tmux 的前缀键默认是 Ctrl-b,先按它,再按后面那个键:

・d:脱离会话,进程不停

・c:新建窗口;n / p 在窗口间切换;, 给窗口改名

・%:左右分屏;":上下分屏

・方向键:在窗格之间跳转

・z:把当前窗格临时放大,再按一次恢复

・[:进入滚动模式,用方向键或 PageUp 翻历史,q 退出

分屏后经常要调大小:前缀键之后按住 Ctrl 再按方向键即可。一边跟日志、一边改配置时,这个比开多个 SSH 窗口稳得多。

让长任务在掉线后继续跑

编译、备份、数据迁移这类命令,不要直接丢在普通 SSH 里。正确顺序是:先 tmux attach(或 new)进入会话,再启动命令。万一断线,服务器上的 tmux 进程还在,命令不会收到 SIGHUP。

回来之后:

tmux attach -t ops

如果暂时不确定会话名:

tmux ls
tmux attach -t 会话名

不要用 nohup 和 tmux 叠床架屋;需要交互、分屏和回看输出时,只用 tmux 就够。

一点省事的配置

把下面几行放进 ~/.tmux.conf,下次进入会话后执行 tmux source-file ~/.tmux.conf 即可生效:

set -g mouse on
set -g history-limit 50000
set -g prefix C-b
setw -g mode-keys vi

mouse on 方便用滚轮翻历史、点选窗格;history-limit 避免排障时关键日志被挤出缓冲区。配置文件写错导致会话异常时,可以先 tmux -f /dev/null new -s rescue 开一个不读配置的急救会话。

排错速查

・failed to connect to server:当前用户下没有正在运行的 tmux server,用 new 而不是 attach。

・attach 进去是空白:可能连到了另一个会话,先 tmux ls 核对名字。

・前缀键没反应:确认没有把 Ctrl-b 改成别的键,或当前焦点其实不在 tmux 里。

・权限不够:tmux socket 在 /tmp/tmux-用户ID/ 下,不要用错用户去 attach。

把关键操作放进命名会话,再养成 detach 而不是直接关终端的习惯,远程排障会稳很多。断线不再等于前功尽弃,这就是 tmux 最值的那一点。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。