后台命令默认 30 分钟会停

Claude Code 2.1.285 规定后台 Bash 和 PowerShell 命令按超时停止。run_in_background 的 timeout 默认 30 分钟,最长 2 小时。到点后命令停止,并通知 Claude。说明没有写前台命令套用同一上限,也没有写可以超过 2 小时。

后台命令默认 30 分钟会停

长构建、测试或监视脚本经常被放进后台。Claude Code 2.1.285 给这类命令加了停止时间。发行说明写:后台的 Bash 和 PowerShell 命令会在时间上限后停止。这个上限是它们在 run_in_background 上的 timeout,默认 30 分钟,最长 2 小时。到点停止时会通知 Claude。claude code 后台命令超时 从这一版起,一个后台任务不会再一直占着,直到你手动停。

作者:CodePass 技术编辑

默认、上限,以及说明没写的部分

不写 timeout 时按 30 分钟。写了更长的值,说明把最长限定在 2 小时。没有写超过 2 小时的值会被截断、拒绝,还是忽略。前台命令不在这句主语里。一个前台 npm test 跑了 40 分钟仍在转,不能用这句解释。只有进了后台、走 run_in_background 的 Bash 或 PowerShell,才套这个上限。

停止之后 Claude 会收到通知。说明没有写通知里有没有已输出的尾部日志,也没有写进程是收到终止信号还是被直接结束。需要超过 2 小时的作业,不要放进这个后台通道。把它放到仓库自己的 CI 或一台不由这次工具调用看守的机器上。

取消和「停在设置阶段」是另一条

同一版还修了:取消一个 shell 命令或 hook 时,如果取消发生在它还在建立的过程中,命令以前仍会启动并跑完。现在不会。那是取消竞态,不是 30 分钟上限。你点了取消却看到命令跑完,对的是这一条。你没点取消、半小时后命令自己停并有通知,对的是 timeout。两条都在 2.1.285,不要用重启会话同时解释它们。

通知送到 Claude 之后,模型可能再发一条命令把作业拉起来。说明没有禁止这种重试。默认 30 分钟若被模型用新的后台命令接上,墙钟时间可以超过 30 分钟,每一段仍单独计时。要真正停住,得在允许规则或提示里写明不要重启该作业,单靠超时不会记住「不要再跑」。最长 2 小时是一段后台命令的上限,不是一整天任务的总预算。

参考资料