Corral: 彻底清理 AI 代理启动的残留进程
Show HN: Corral – Kill every command your agent starts
Corral 是一款专为 Linux 环境设计的命令行工具,旨在解决 AI 编程代理和 CI 任务中常见的进程残留问题。当这些代理运行非自身编写的 Shell 命令时,传统的超时工具往往无法清理守护进程、后台任务或忽略终止信号的子进程,导致端口占用和后续运行失败。Corral 通过 cgroup v2 强制模式或子进程回收器模式,确保命令执行完毕后,其启动的所有进程树都被彻底终止。它支持时间、内存和输出限制,并提供详细的审计日志,是保障自动化任务环境清洁的利器。
Corral 不仅监控直接子进程,更掌控整个进程树,确保命令返回时没有任何残留进程在后台运行。
- Retr0id
我能想到的一个微不足道的绕过方法是:通过 `ssh localhost foo` 启动一个新进程——新进程是从 sshd 派生出来的,而不是从客户端。这很简单,如果 LLM 觉得你在挡它的路,它完全能自己想到这个办法。
这是一大类绕过手段,几乎适用于任何“长期运行的守护进程被指示启动子进程”的场景。
- pmoriarty
为什么不直接用 timeout[1] 命令呢?
[1] - https://www.man7.org/linux/man-pages/man1/timeout.1.html
- ethanj8011
slop core