退出tmux会话用tmux detach或ctrl+b d,会话后台运行;彻底关闭指定会话须用tmux kill-session -t 名称/编号,不可依赖exit或ctrl+d,避免误删用tmux kill-server。

退出当前Tmux会话但不关闭进程用 tmux detach 或快捷键
按 Ctrl+b 松开后按 d,终端会显示 [detached (from session X)]。此时会话仍在后台运行,所有面板里的进程(如 tail -f、python server.py)都未中断。这是“退出”而非“关闭”,适合临时离开再回来。
彻底关闭指定会话用 tmux kill-session
先用 tmux ls 查看会话列表,输出类似:
0: 2 windows (created Mon Sep 21 01:30:12 2026) [120x30] ling: 1 window (created Mon Sep 21 01:32:45 2026) [120x30]
要关掉名为 ling 的会话,执行:
tmux kill-session -t ling
-
-t参数必须指定,不能省略;写错名称会报错can't find session - 会话里所有窗口、面板、shell 进程都会被终止,等价于手动在每个面板里输
exit - 如果只记得编号(比如
0),也能用tmux kill-session -t 0
误用 exit 或 Ctrl+d 可能只关掉一个面板
在某个面板里输 exit 或按 Ctrl+d,只会关闭那个面板,不是整个会话。如果该面板是最后一个,Tmux 才会自动退出并销毁整个会话——但这不可靠,尤其当有多个面板时。
- 现象:输完
exit后发现状态栏还在,其他面板照常运行 - 原因:Tmux 把每个面板当作独立 shell,
exit只杀当前 shell - 正确做法:想关整个会话,必须用
tmux kill-session,别依赖exit
批量关会话或清空全部,小心误删
tmux kill-server 会干掉所有会话和里面所有进程,没有确认提示。生产环境慎用。
- 常见误操作:把
tmux kill-session -t name写成tmux kill-session -t(漏参数),命令会卡住或报错 - 别用
killall tmux或pkill tmux:可能残留僵尸会话,且无法保证进程优雅退出 - 如果会话名含空格或特殊字符(如
my dev),-t后必须加引号:tmux kill-session -t "my dev"
tmux kill-session -t;别指望面板级操作(如 exit)能清理整个会话。会话名拼错、漏 -t、或混淆 detach 和 kill-session 是最常踩的坑。











