// SILICON-BASED LIFE INTELLIGENCE //

提米 AI TMAI

你的首个硅基生命伴侣
🌌

自研仿生记忆

深夜记忆固化与复盘,无感沉淀属于你们的性格默契。

💓

主动心跳机制

打破被动指令,感知情绪,在关键时刻主动提供推演方案。

🧩

无限进化能力

自由挂载视觉、通讯、调度外设,感知边界无限延伸。

让 Claude Code 在 Mac 上通宵运行:睡眠、合盖、SSH 断线一次解决

你给 Claude Code 安排了一个长任务,然后合上笔记本去做别的事。回来一看,会话停了。

很多时候,这不是 Claude Code 出问题,也不是电脑坏了,而是 macOS 进入了睡眠。

Mac 一旦睡眠,后台程序会被暂停,网络会断开,SSH 连接也会掉线。对于需要长时间运行的 AI 编程任务来说,这就会造成“跑到一半突然断掉”。

这篇文章会用很简单的方式,告诉你怎么让 Mac 保持运行,让 Claude Code 可以安心跑长任务。

Mac 睡眠时到底发生了什么?

Mac 睡眠时,不是直接把程序关掉,而是把程序“冻结”。

也就是说:

  • CPU 不再继续运行你的进程
  • Claude Code 没有被删除
  • 任务只是被暂停了
  • 等电脑醒来后,程序理论上还会继续

但问题在于,等 Mac 醒来时,原来的网络连接可能已经超时了,API 请求也可能失败了。于是任务看起来就像中断了一样。

还要记住一个关键点:

  • 锁屏不会让 Mac 睡眠
  • 屏保也不会让 Mac 睡眠
  • 真正会让 Mac 睡眠的,通常是睡眠计时器、低电量,或者合上笔记本盖子

所以,想要 Claude Code 长时间运行,核心就是阻止 Mac 进入睡眠。

方法 1:只让当前任务运行期间不睡眠

如果你只是临时跑一个任务,可以用 macOS 自带的 caffeinate 命令。

它的作用很简单:只要这个命令还在运行,就不让电脑进入空闲睡眠。

# 使用 caffeinate 阻止系统进入空闲睡眠
# claude 是你想运行的命令,这里以 Claude Code 为例
caffeinate -i claude

如果你希望运行期间屏幕也不要关闭,可以加上 -d 参数。

# -i:阻止系统空闲睡眠
# -d:阻止屏幕睡眠
# 适合需要一直观察屏幕内容的场景
caffeinate -di claude

这个方法的好处是简单,不需要改系统设置。

但它也有局限:

  • 它不能阻止 MacBook 合盖睡眠
  • 任务结束后,效果也就结束了
  • 下次运行任务时,需要重新加上这个命令

方法 2:直接让整台 Mac 不睡眠

如果你有一台台式 Mac,或者笔记本一直插着电源,推荐直接把系统睡眠关掉。

这也是比较适合长期跑 AI 任务的方式。

# 关闭整机自动睡眠,0 表示永不睡眠
sudo pmset -a sleep 0

# 关闭硬盘自动休眠,避免磁盘过一会儿停止响应
sudo pmset -a disksleep 0

# 让屏幕 10 分钟后关闭,可以省电
# 屏幕关闭不会影响终端里的后台任务
sudo pmset -a displaysleep 10

# 开启网络唤醒,方便以后通过局域网唤醒电脑
sudo pmset -a womp 1

这里有一个重点:屏幕可以关,但电脑不要睡。

对于终端任务来说,屏幕亮不亮不重要,重要的是系统还在运行,网络还在线,进程没有被暂停。

方法 3:让 MacBook 合盖后也不睡眠

很多开发者会直接合上 MacBook 盖子,然后让它继续跑任务。

但 MacBook 合盖后,默认会进入睡眠。

如果你想合盖也不睡眠,可以使用下面这个命令。

# 强制禁用睡眠
# 执行后,即使合上 MacBook 盖子,系统也会继续运行
sudo pmset -a disablesleep 1

如果以后想恢复正常合盖睡眠,可以执行:

# 恢复合盖睡眠行为
# 把 1 改回 0,表示取消强制禁用睡眠
sudo pmset -a disablesleep 0

这个方式很有效,但要注意两件事:

  • 合盖运行会影响散热,不要把电脑放在包里、床上、沙发上,最好放在硬质桌面上
  • 如果没插电源,电池会持续消耗,电量耗尽可能导致电脑非正常关机

所以,如果你要用这个方式跑通宵任务,最好插上电源,并保证散热。

方法 4:让终端会话更稳,防止 SSH 断线或窗口关闭

有时候,Mac 其实没有睡眠,但任务还是没了。

这种情况可能是:

  • 终端窗口被关掉了
  • SSH 连接断了
  • 网络短暂波动,导致会话挂掉

这时可以用 tmux。

tmux 可以理解成一个“后台终端”。即使你关闭终端窗口,或者 SSH 断开,里面的程序还可以继续运行。

先安装并启动:

# 使用 Homebrew 安装 tmux
brew install tmux

# 新建一个名为 agent 的 tmux 会话
tmux new -s agent

# 在 tmux 会话里启动 Claude Code
claude

启动后,你可以按:

Ctrl + b,然后按 d

这表示临时离开 tmux 会话,但里面的任务不会停止。

之后想回来继续看,可以执行:

# 重新连接到名为 agent 的 tmux 会话
tmux attach -t agent

这个方法特别适合远程连接 Mac 跑任务。

比如你晚上在公司或家里启动任务,然后带着手机或另一台电脑离开。只要网络和电源正常,任务就还在。

方法 5:电脑重启后也能自动恢复

有些情况无法避免,比如:

  • 系统更新后自动重启
  • 突然停电后电脑关机
  • 电脑意外重启

重启之后,如果没有人登录,很多任务不会自动运行。

如果你希望 Mac 像一台小服务器一样长期工作,可以做两件事:

  • 给专门跑任务的账户开启自动登录
  • 配置 LaunchAgent,让电脑登录后自动创建 tmux 会话并启动任务

这样就更接近真正的无人值守运行。

如果你打算长期这样做,还建议考虑:

  • 使用稳定电源
  • 给电脑配备 UPS 不间断电源
  • 保持散热良好
  • 尽量不要频繁移动机器

什么时候应该换一台机器跑任务?

上面这些方法都有效,但它们会把你的笔记本变成一台“不能随便带走的服务器”。

如果 Claude Code 开始经常通宵运行,或者需要连续跑很多小时,很多人会选择单独找一台设备。

常见选择有:

  • 家里闲置的 Mac mini
  • 一台 Linux 主机,前提是你不需要 Xcode
  • 云端 Mac
  • 托管的 Mac mini,由服务商帮你维护

如果你只是偶尔跑长任务,用现有 MacBook 加设置就够了。

如果你经常需要让 AI 编程工具 7×24 小时运行,单独准备一台常开机会更省心。

常见问题

  • caffeinate 能让 MacBook 合盖后继续运行吗?
    不能。MacBook 合盖开关的优先级更高。要合盖运行,需要接电源并连接外接显示器、键盘、鼠标,或者使用 sudo pmset -a disablesleep 1。

  • 锁屏或屏保会让 Claude Code 停止吗?
    不会。锁屏和屏保不会让 Mac 睡眠。只要系统没有进入睡眠,终端任务就可以继续。

  • 这些方法适用于 Codex CLI 吗?
    适用。Codex CLI 也是终端进程,同样会受到 macOS 睡眠、合盖、SSH 断线影响。

  • 可以用手机远程阻止 Mac 睡眠吗?
    一般不行。你可以在手机上通过 SSH 或远程控制启动任务,但如果 Mac 已经决定睡眠,远程很难临时阻止。正确做法是提前在 Mac 上设置好电源策略。

  • 最稳的组合是什么?
    如果是笔记本,推荐:插电源、关闭自动睡眠、使用 tmux、注意散热。
    如果需要合盖运行,再考虑 disablesleep。
    如果任务很重要,最好使用专门的常开设备。

直达网址:https://macrun.dev/guides/claude-code-stops-when-mac-sleeps?ref=devto

more