首页/文章/Claude Code 会话半夜被系统杀掉?在新加坡 Mac mini 上防休眠、控内存并用 tmux 保住进度

Claude Code 会话半夜被系统杀掉?在新加坡 Mac mini 上防休眠、控内存并用 tmux 保住进度

· SgRent

常开了,会话还是会「消失」

把 Claude Code 放到一台不关机的 Mac mini 上,并不等于长会话一定活到早上。常见情况是:

  1. 系统悄悄睡了:显示器关了、硬盘停了,或「电脑睡眠」仍开着,进程被挂起或踢掉。
  2. SSH / 远程断线:你这边网络一抖,前台终端没了,背后的 Claude Code 也跟着没了。
  3. 内存压力触发清理:多开会话、编译、浏览器一叠加,系统开始回收内存,Claude Code 进程被杀掉。
  4. 云端优先的机器不适合过夜:共享云主机上别人抢资源、实例被回收,长任务更难扛。

目标很明确:机器不睡、会话可重连、内存有余量。下面按步骤在一台新加坡 Mac mini 上配好。

Claude 账号由你自己开通并登录,请遵守 Anthropic 的服务条款与支持地区规则。本文只谈如何搭一个稳定合规的使用环境,不涉及共享或转卖账号。SgRent 与 Anthropic 没有官方合作关系。

准备清单

  • 一台常开的 Mac mini(整机租用),已装好 Claude Code 并用你自己的账号登录
  • 终端里可用的 tmux(系统自带或 brew install tmux)
  • 远程方式:SSH 用来接回 tmux;UU 远程用来处理需要图形界面的设置
  • 建议先在有人看着时验证「断线再 attach」和「内存压力告警」,再放过夜任务

步骤一:关掉自动睡眠,用 caffeinate 顶住会话

在 系统设置 → 电池 / 节能(不同 macOS 版本名称略有差异)里:

  1. 把「电脑睡眠」或「防止自动进入睡眠」设为不自动睡;显示器可以关,机器本身保持醒着。
  2. 关闭「硬盘进入睡眠时关闭」一类选项(若有)。
  3. 确认电源线一直插着;笔记本式电源策略不适用于常开整机。

对单次长任务,还可以在跑 Claude Code 的同一终端会话里开着 caffeinate,例如:

``bash caffeinate -dims -w $(pgrep -x Claude || echo $$) ``

含义简要说明:-d 不让显示器睡(可选)、-i 阻止闲置睡眠、-m 阻止磁盘睡眠、-s 在接电时阻止系统睡眠。你也可以写成 caffeinate -ims -- claude,让 Claude Code 作为子进程,任务结束 caffeinate 也跟着结束。具体参数以 man caffeinate 为准。

登录后保持登录态:LaunchAgent、图形会话依赖的工具,都需要这台 Mac mini 处在已登录、未睡眠的状态。

步骤二:所有长会话放进 tmux

断线不等于丢会话。养成习惯:先开 tmux,再在里面启动 Claude Code。

``bash tmux new -s cc # 在会话里启动 Claude Code,开始干活 # 断开 SSH 时直接关终端即可,不要 exit ``

第二天或手机上再连回来:

``bash tmux attach -t cc # 或 tmux ls 查看有哪些会话 ``

几个实用习惯:

  • 一个任务一个会话名:例如 cc-frontend、cc-refactor,避免糊成一团。
  • 断线前不 exit:只关本地终端;在 tmux 里 exit 会结束会话。
  • 进度仍要落盘:会话能保住进程,但不保证上下文额度;重要结论写进项目里的进度文件,方便新开一轮时接着做。

若你还在学 tmux 基础操作,可先看站内相关入门文,再回来做过夜长任务。

步骤三:看内存压力,别等 OOM 才发现

macOS 不会总在终端里打印一句「OOM killed」,但可以从几处提前发现压力:

  1. 活动监视器 → 内存:看「内存压力」颜色;长期偏黄/偏红就要减负。
  2. 终端快速检查:

``bash memory_pressure vm_stat ``

memory_pressure 会给出当前压力摘要;vm_stat 里页面换出、压缩相关数字持续升高,说明余量不够。

  1. 内核日志里找被杀痕迹(版本与进程名因系统而异):

``bash log show --last 1d --predicate 'eventMessage CONTAINS "jetsam" OR eventMessage CONTAINS "killed"' --style compact | tail -50 ``

减负思路(按优先级):

  • 少开并行 Claude Code;大重构一次只跑一条主线。
  • 关掉不用的浏览器标签和本地预览服务。
  • 编译与测试错开高峰,避免「模型推理 + 全量测试」叠在一起。
  • 整机独享时,你至少不用和别人抢同一台物理机的内存;仍要按自己的项目留余量。

步骤四:过夜前自检清单

  1. 节能设置已禁止电脑自动睡眠;电源常插。
  2. Claude Code 在 tmux 会话里运行,tmux ls 能看到。
  3. 故意断开一次 SSH,再 tmux attach,现场还在。
  4. 活动监视器里内存压力正常;memory_pressure 无持续高压。
  5. 项目进度文件已更新;FileVault、防火墙与自动锁屏仍开启。

为什么长会话更适合本地优先的新加坡整机

不少人希望 Claude Code 和新项目能力优先跑在自己的 Mac mini 上,而不是默认丢到共享云端:本地整机时区固定、磁盘和内存归你调度,断线用 tmux 接回即可,不必担心实例被回收或邻居抢资源。把防休眠、tmux 和内存余量这三件事固定在同一台常开物理机上,过夜长任务才站得住。

SgRent(品牌 Zumac.Ai)在新加坡提供 Mac mini M6 整机独享(一人一台物理机),接入新加坡家庭宽带原生 IP,适合作为 Claude Code 的常驻工作机。新客户整机租用 月付 ¥799 起;季付 ¥2,157.30,半年付 6 送 1 ¥4,794,年付 12 送 2 ¥9,588。通常付款后 24 小时内交付,交付后可用 UU 远程连接,SSH 按你的安全需要自行开启。Claude 账号与订阅由你自己准备。实际延迟取决于你本地的网络线路。

查看方案与费用,或在帮助中心了解连接方法;有问题可以在 Telegram 联系 @singatao。

小结

Claude Code 半夜被杀,多半不是「模型不听话」,而是机器睡了、连接断了、或内存没了。用 Energy Saver / caffeinate 保证醒着,用 tmux 保证断线可接回,用内存压力检查保证余量,再把长任务放到新加坡整机独享的 Mac mini 上——这三步比换更大的提示词更管用。

需要一台新加坡的独享远程 Mac? SgRent 提供新加坡家庭宽带原生 IP 的 Mac mini M6,整机独享,UU 远程连接。整机租用 ¥799/月,自有设备托管 ¥299/月;季付 9 折,半年付 6 送 1,年付 12 送 2。
前往 panel.zumac.ai 订购 → · 查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服