合上笔记本后怎么让 Claude Code 继续跑
Claude Code 是跑在终端里的交互式进程。终端没了,会话也就没了。这篇讲清楚到底是什么结束了会话,以及怎么让它活下来。
RoamAI 团队发布于 2026年9月9日
什么会结束一个会话
Claude Code 是一个终端程序,需要一个活着的伪终端,运行期间对话保存在内存里。三件事会结束它:关掉终端窗口(shell 会发一个挂断信号,进程退出);通过 ssh 连着远程机器时断网(ssh 会话结束,连带 shell 一起没了);电脑进入睡眠(睡眠的 CPU 上什么都不会跑,等它醒来时原来的网络连接早就超时了)。
不会因此丢掉的是对话本身。会话运行时,记录会持续写到磁盘上的 ~/.claude/projects/ 目录,每个会话一个 JSONL 文件。所以断掉的会话通常可以恢复,下面会讲。
用 tmux 让进程活着
在一台不会睡眠的机器上,标准做法是终端复用器。tmux 会在你断开之后继续保持 shell 和里面的一切在运行,之后可以从同一个或另一个终端重新接上。
tmux new -s claude
claude
# 分离:按 Ctrl-b,再按 d
# 之后在这台机器的任何终端里:
tmux attach -t claude这在任何 Linux 服务器上都有效,在 Mac 上也有效,前提是 Mac 不睡眠。它撑不过重启,也不会在 Claude 停下来提问时告诉你,你得自己接回去看。
为什么在笔记本上 tmux 不管用
tmux 保护的是进程不因为失去终端而退出,它挡不住机器睡眠,因为睡着的机器上什么都不会跑。在 macOS 上,可以用 caffeinate 让插着电源的笔记本合盖后保持唤醒:
caffeinate -i tmux attach -t claude应付一个晚上可以,长期这么干活不行。要让会话在你不在的时候继续跑,它得在一台一直开着的机器上。
把会话放到服务器上
可靠的做法:在一台 Linux 服务器上装好 Claude Code,在那里登陆,在 tmux 里启动,想看的时候用 ssh 连上去。这样会话依赖的是服务器的在线时间,不是你的笔记本。用 mosh 代替 ssh 可以在 IP 变化和短暂断网时保持连接,用手机或在地铁上时这一点很重要。
代价是 Claude 改的文件在服务器上,不在你眼前这台机器上。在远程服务器上跑 Claude Code详细讲了安装步骤和文件放在哪的问题。
已经断了:恢复它
Claude Code 会随时保存会话记录。在同一个目录里运行 claude --continue 可以接上最近的会话,或者用 claude --resume 从列表里选一个。模型会拿回完整的对话;拿不回的是只存在于旧进程里的东西,比如一条还在跑的 shell 命令。
恢复 Claude Code 会话这一篇逐条讲了哪些会恢复、哪些不会。
或者让服务替你保管会话
RoamAI 替你做了服务器那一部分。会话跑在一台一直开着的托管机器上,或者一条命令接进来的 Linux 服务器上;桌面客户端会显示哪些会话在等你回答,会话停下时手机会收到推送。文件的读写发生在运行客户端的那台电脑上,所以那台 Mac 睡眠期间会话会暂停,开盖后继续。需要在你离开时持续运行的工作,放到接进来的 Linux 服务器上跑。RoamAI 里会话是怎么运作的。
不用自己维护服务器,会话也一直在
RoamAI 把 Claude Code 跑在托管机器或你接进来的服务器上,会话需要你时会通知你。注册免费,工作区 $9 / 月。
开始使用