核心是创建独立于终端的命名会话并detach,使进程持续运行:tmux new -s mytask启动,ctrl+b d分离,tmux attach -t mytask重连,会话状态完全恢复。

用 tmux 实现后台持久运行的交互式会话,核心是创建一个独立于终端连接的会话环境,再通过分离(detach)让它在后台持续运行,之后随时可重新接入并继续操作。
创建命名会话并启动任务
避免使用无名会话,直接创建带名称的会话,方便后续识别和管理:
-
运行命令:
tmux new -s mytask(例如mytask是你自定义的会话名) - 进入会话后,像平常一样执行交互式命令,比如
python3 train.py、vim server.log或tail -f /var/log/syslog - 此时所有输入输出都属于该会话,即使 SSH 断开也不会中断进程
安全分离会话(关键一步)
不要直接关终端或退出 SSH,必须主动分离:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 按下 Ctrl + b,松开,再按 d(即前缀键 + d)
- 你会立刻回到原始 shell,提示类似
[detached from session mytask] - 此时会话仍在服务器后台运行,所有子进程保持活跃状态,包括需要键盘输入的程序(如
vim、htop、gdb)
随时重新连接并恢复交互
无论多久之后、从哪台机器登录,只要能访问服务器,就能无缝续上原来的操作界面:
- 查看当前所有会话:
tmux ls(会显示类似mytask: 1 windows (created ...)) - 重新连接指定会话:
tmux attach -t mytask - 连接后,光标位置、滚动历史、正在编辑的文件、运行中的命令行工具全部原样恢复,就像从未离开过
补充建议:提升稳定性和可用性
让交互式会话更可靠、更易维护:
- 在
~/.tmux.conf中设置set-option -g default-shell /bin/bash(或你常用 shell),避免因默认 shell 不一致导致交互异常 - 若需长时间无人值守,可在会话中提前运行
stty -icanon -echo; cat类命令测试是否支持持续 stdin,确认交互逻辑无阻塞 - 避免在会话中直接运行依赖图形界面或特定 TTY 的程序(如部分需要
/dev/tty的 sudo 配置),这类情况优先改用 systemd 服务










