osg~/notes
tmux · 2026-10-24

把 tmux 会话当成进程的父级来用

长时间跑的任务,最稳妥的做法不是 nohup,而是让 tmux 当它的父会话。区别在于可恢复性:nohup 只能保证进程活下来,输出进了文件,但你看不到它此刻在做什么、也没法交互。

具体做法是固定会话名 + 固定窗口布局,脚本里用 tmux new-session -d -s build 起会话,任务跑完自己 exit,会话随之消失。这样既没残留,也能随时 attach 进去看。

要注意的是 tmux 的默认 history 只有 2000 行,编译日志很容易把它冲掉。set -g history-limit 50000 之后再开始,否则出问题回看时已经什么都看不到了。

还有一个细节:tmux 里的环境变量是启动时继承的,改完 .bashrc 不会自动生效。养成交互前 source 一次的习惯,能省掉不少「明明改了却没效果」的困惑。

← 返回