SSH 断开后,让程序继续跑:tmux 用法
用 tmux 运行临时长任务,断开 SSH 后再接回会话。服务器重启或程序报错,仍可能让任务停止。
数据库导入还没结束,SSH 却断开了,可以在开始前用 tmux 保留终端会话。但它不会替你处理程序错误,也不能让任务跨 VPS 重启自动继续。
建立一个能辨认的会话
在已有 tmux 的服务器上,新建名为 migration 的会话:
tmux new -s migration
进入后执行实际任务。需要离开时,先按 Ctrl+b,松开后按 d,这会分离会话。不要在任务终端里直接输入 exit,也不要按 Ctrl+c,后者可能中断正在运行的命令。
重新登录,回到同一个任务
tmux ls
tmux attach -t migration
先列出会话再进入,避免重复启动同一项导入或备份。任务完成后检查返回结果与应用数据,不把窗口还在当作成功依据。若有敏感输出,限制服务器账号和会话的访问权限。
分离、结束和重启不是同一件事
分离只离开界面;会话结束会影响其中的进程;服务器重启也不会靠 tmux 自动恢复任务。数据库导入、迁移脚本等工作要自己保留可重试和检查的方法。
需要长期运行的网站、Agent 或定时任务,用 systemd、容器重启策略或应用文档支持的管理方式。tmux 适合临时交互任务,不能替代开机启动、健康检查、日志保留和异常通知。
使用完确认任务完成,再退出不需要的会话。也别让一个终端长期保存数据库密码或具有生产权限的交互状态。
长任务卡住,需要更大的 VPS 吗
会话断开与服务器资源不足是不同问题。先确认任务结果与日志;确实要新增测试环境时,按短周期 VPS 的选择先用短周期试运行。长期服务使用支持的进程管理方式,不能因为 tmux 能保留窗口就忽略重启与恢复。
只为远程维护已有服务,不需要为 tmux 另买机器。准备新部署时,一起比较 Linux 管理功能、救援方式和应用所需资源:可查看 Evoxt 的 Linux 实例,或用中文资料核对 雨云 RCS 的配置与系统。长时间任务还要估算 CPU、内存和临时盘,tmux 能保留会话,不会让实例断电后的进程继续执行。




