使用说明
逃跑杀手
一个轻量级的macOS守护进程,可以发现并杀死耗尽电池的孤立进程。为使用AI编码工具(Claude Code、Cursor、Windsurf、Copilot等)的开发人员构建,后台MCP服务器和辅助运行时可以比其父会话更持久。
的问题
AI编码工具生成MCP(模型上下文协议)服务器进程以扩展其功能。他们也经常为助手旋转 node 和 java 运行时间通过 npm exec, npx,或应用程序托管的子流程树。当您关闭会话时,这些帮助程序可以继续运行——在后台默默地消耗CPU和内存。在笔记本电脑上,少数孤儿助手可以将你的电池寿命缩短一半。
其他工具也是如此:Wine/CrossOver留下了 winedevice.exe 进程,Electron应用程序留下孤立的助手,等等。
它的作用
通过launchd每5分钟运行一次,并终止符合以下条件的进程 结构标准 --没有硬编码的进程名称或脆弱的启发式方法:
MCP服务器检测 (3个独立信号):
- 进程父进程是
npm exec或npx(stdio MCP服务器) - 进程从npm/npx缓存路径运行(
~/.npm/_npx/,node_modules/.bin/) - 进程是已知AI编码工具的直接子进程,其路径中有“mcp”或“server”
杀戮标准 (两者都需要放弃的证据):
- 管道破裂 --进程的stdin管道在另一端没有实时读取器(主机应用程序已关闭)
- 重复项过多 --同一父级下同一MCP服务器的3个以上实例
失控过程清理:
- 杀死孤立的葡萄酒工艺(
winedevice,wine64-preloader,wineserver)仅当CrossOver未运行时
安全功能
- 首先发送SIGTERM,等待0.5秒,然后仅在需要时发送SIGKILL
- 在终止之前验证进程身份(防止PID回收)
- 跳过昂贵的
lsof当没有候选时进行扫描(大多数运行在<0.1s内完成) - Lockfile防止并发运行
- 日志轮换可防止日志文件无限增长
安装
# Download
curl -o ~/.local/bin/runaway-killer https://raw.githubusercontent.com/radu2lupu/runaway-killer/main/runaway-killer
chmod +x ~/.local/bin/runaway-killer
# Install the launchd agent (runs every 5 minutes)
runaway-killer install
或者克隆并安装:
git clone https://github.com/radu2lupu/runaway-killer.git
cd runaway-killer
cp runaway-killer ~/.local/bin/
runaway-killer install
卸载
runaway-killer uninstall
rm ~/.local/bin/runaway-killer
用法
runaway-killer # Run once
runaway-killer --dry-run # Preview what would be killed
runaway-killer --verbose # Show detailed detection info
runaway-killer --dry-run -v # Preview with full details
runaway-killer install # Install launchd agent
runaway-killer uninstall # Remove launchd agent
runaway-killer --version # Show version
配置
所有配置都是通过环境变量进行的。在shell配置文件中设置它们,或在手动运行时覆盖它们。
| 变量 | 默认值 | 描述 |
|---|---|---|
RUNAWAY_MAX_PER_TYPE |
3 |
在杀死额外服务器之前,每种MCP服务器类型的最大实时实例数 |
RUNAWAY_EXTRA_HOSTS |
-- | 其他AI主机模式(空格分隔,grep-E正则表达式) |
RUNAWAY_LOG |
/tmp/runaway-killer.log |
日志文件路径 |
RUNAWAY_DRY_RUN |
0 |
设置为 1 预览而不杀人 |
RUNAWAY_VERBOSE |
0 |
设置为 1 用于详细记录 |
添加自定义AI主机模式
如果您使用默认情况下未检测到的AI编码工具,请添加它:
export RUNAWAY_EXTRA_HOSTS="MyTool\\.app /my-custom-ai"
支持的AI编码工具
开箱即用:
- 克劳德代码/克劳德桌面
- 光标
- 帆板运动
- GitHub Copilot(通过Codex)
- 泽德
- 科迪姆
- 帮助
- 继续
日志
tail -f /tmp/runaway-killer.log
原木自动旋转5000行。
需求
- macOS(使用launchd、lsof和zsh)
- zsh(自Catalina以来macOS上的默认shell)
许可证
麻省理工学院