远程会话总断线?用 tmux 让服务器任务一直在后台跑
远程连服务器最让人头疼的不是命令难,而是会话说断就断。网络闪断、电脑合盖、家里宽带重启,正在跑的备份、编译和下载立刻跟着窗口一起消失,回来只剩一句连接已断开。很多人以为只能盯着窗口等它跑完,其实办法很简单:让任务脱离当前会话,在服务器后台自己跑,窗口断不断线都不影响它。
办法就是终端复用器 tmux。它在服务器上开一个独立会话,命令在会话里跑,和你眼前这个窗口没有绑定关系。窗口断了,会话还在;网络断了,任务照跑。你重新连上服务器,再接回同一个会话,屏幕和断开前一模一样,输出、进度和报错都还在,就像从来没有断过线一样。
用法分三步。第一步是新建会话并起个好记的名字,比如按任务起名,备份、编译或者训练,名字起得清楚,下次一眼就能找到。第二步是在会话里正常敲命令,该跑的长任务直接跑,不用加任何特殊参数。第三步是断开时不要关窗口也不要直接退出,而是把会话挂到后台,再合上电脑安心走开,任务会在服务器上继续跑。
回来之后重新登录服务器,先看一眼有哪些会话在跑,挑出要接的那个接回来。正在跑的任务会继续输出,已经跑完的任务会把结果留在屏幕上,翻一翻就能看到有没有报错。多个任务并行也不用开多个窗口,在一个会话里分几个窗口放着,切换一下就行,屏幕干净,心里也有数。
几个容易踩的坑要先说清楚。第一,长任务跑之前先确认它确实在会话里面跑,而不是在普通窗口里随手敲的,很多人就是随手敲完才想起来没进会话。第二,名字起得太随意,下次接回来分不清哪个是哪个,建议按任务起名字。第三,服务器重启会清空所有会话,真正重要的数据还是要落盘保存,不能只指望会话兜底。第四,退出时养成挂起的习惯,直接关窗口虽然不会丢任务,但时间长了会话越积越多。
另外还有两个顺手的小习惯。一是把常用会话固定下来,每天登录先接回它,工作现场永远在原地。二是定期清理已经跑完的旧会话,留着没用还占地方。把这套习惯用起来,远程工作就从盯着窗口等,变成随时回来接上,断线再也不是大事。
- 点赞
- 收藏
- 关注作者
评论(0)