给 Claude Code Bash 加内存上限防卡死会话

2.1.233 新增 Linux 可选 memory cgroup:CLAUDE_CODE_TOOL_MEMORY_LIMIT,避免 runaway build 拖死整场会话。

给 Claude Code Bash 加内存上限防卡死会话

Claude Code 2.1.233 增加一项 Linux 可选能力:用 memory cgroup 限制 Bash 工具命令的内存,环境变量是 CLAUDE_CODE_TOOL_MEMORY_LIMIT。场景很具体:一次 runaway 的 npm run build / 测试矩阵把机器内存打满,整场会话一起僵死,甚至拖垮同机其他进程。

作者CodePass 技术编辑

官方在修什么

Changelog 原文取向:opt-in memory cgroup support for Bash tool commands on Linux,so a runaway build can't stall the session。同版本还修了 sandbox 开启时 Linux 空闲会话偶发单核 100% 等问题,说明他们在收紧「工具进程祸及 TUI」的边界。这不是 macOS / Windows 的通用旋钮;文档未写的平台别假设生效。

怎么开

在启动 Claude Code 的环境里导出限额(单位与合法取值看安装版 help / 发行说明;changelog 只给了变量名):

export CLAUDE_CODE_TOOL_MEMORY_LIMIT=...   # 按发行说明填写
claude

建议先在 CI 或专用 Linux 开发机上试:故意跑一个吃内存的脚本,确认超限是被杀而不是整机 OOM,再写进团队 dotenv / systemd 单元。限额过小会导致正常编译被误杀;过大则失去保护。与企业 sandbox、seccomp 叠加时,取更严的那层。

和 Autopilot / 云端环境的分工

本机 Bash cgroup 管「这一台 Linux 上的工具进程」。云端 Cloud Agent 另有环境与 Builds 快照隔离,见 Cursor Builds 是什么。两边都开时,本地限额仍有价值:很多调试仍在笔记本 Linux 或远程 SSH 盒上进行。若会话卡死但 CPU 打满而非内存,先查同版本 idle+sandbox 的 CPU 修复是否已升级,再谈 cgroup。