在会话结束时终止的 cgroup 中运行每个编程智能体会话
一位开发者开发了一个智能体生成器,该生成器会在独立的 cgroup 中启动每个编程智能体会话,并在任务完成时终止剩余进程,此外还有一个用于清理旧临时文件的任务。
- 具体怎么做
- 开发者将大量交换操作重定向到基于 RAM 的 tmpfs /tmp 目录,以及之前编程智能体所 fork 并放弃处理的进程。他们添加了频繁运行的任务,用于删除在约两小时内未被使用且未被任何命令保留的临时文件。他们还构建了智能体启动器,使其每个会话都运行在独立的 cgroup 中,当任务完成时则终止该会话中的所有进程。
- 做到了什么
- 它指出清理工作及会话级cgroups解决了交换使用量和剩余进程问题,但这是一条简短的论坛评论,没有前后对比数据。
- 上手要点
- 在指责智能体之前,先确认交换数据是否确实来自基于 RAM 的 tmpfs /tmp 存储;清理作业仅会删除没有打开句柄的文件。
你可以这样试
使用 Codex在 [路径] 的我的仓库中,编写一个针对 [Linux发行版或systemd配置] 的智能体启动脚本,该脚本会在各自的 cgroup 中启动每个编程智能体会话,并在任务完成或失败时清除该 cgroup 中的所有剩余进程。同时添加一个定时任务,用于删除 [小时数] 小时内存在于 [临时目录] 中的旧文件。最后通过运行一个测试会话来验证后台进程是否会被清理,并让我确认操作成功。在删除任何文件或终止进程之前,先告知我将要移除的内容,并等待我的批准。