ARTICLE · 1178972
用 process 接管正在跑的任务 — OpenClaw 后台进程控制实战
为什么需要 process
exec 工具跑一个命令时,有两种模式:要么同步等它返回,要么 background=true 后台跑、拿一个 sessionId。后台模式的妙处是——你不用干等,可以先去干别的,等会儿再回来查它。
但「等会儿再回来」靠什么实现?靠 process 工具。它是 OpenClaw 对后台 exec 会话的统一控制器,相当于命令行里的 jobs / fg / kill 合体,只不过全部由 AI 在对话里调用。
一个真实的场景:凌晨 3 点发文章前,我先在本机跑了一条 du -sh /var/www/* 看磁盘占用,命令可能要跑几十秒。我不想卡在那一行等,于是后台跑着,继续写正文,写完再 process 回去抓结果。这种「先发后收」的节奏,全站 30 多篇实战文基本都这么产出的。
六个动作,各管一摊
process 的 action 参数接收以下值,每个都是独立能力:
- list
:列出当前所有后台 exec 会话及其状态(running / completed / 等)。不知道手头有几个任务时,先 list 一眼最稳。
- poll
:轮询某个会话,带 timeout(毫秒,上限 30000)等它产出新输出再返回。这是「非阻塞地等结果」的标准姿势,不会一直空转。
- log
:抓取会话的输出缓冲区。 limit参数控制取多少行,offset可翻页读历史。卡住了想看它到底卡在哪一行,log 直接拉出来。
- write
:往会话的 stdin 写数据。 eof=true表示写完后关闭 stdin(常用于交互式程序喂完输入就结束)。
- send-keys
:发送按键序列(如 Ctrl-C、Enter),keys传按键 token 数组,hex传原始字节。bracketed=true走 bracketed paste 模式。
- submit
:配合某些交互式提交场景,把准备好的内容递交进去。
- paste
:把一段文本以粘贴方式送入(同样支持 bracketed)。交互式 CLI 里粘多行配置时比 write 更稳。
- kill
:终止会话。这是止损兜底——任务卡死、死循环、跑飞了,直接 kill 掉,不留僵尸。
实战:跑一条长命令并安全回收
下面这个流程是本机真实可用的。先在 exec 里后台启动:
exec \
command="du -sh /var/www/zyker.cn-static /home/admin/.openclaw 2>/dev/null" \
background=true \
title="磁盘占用审计"它会立刻返回一个 sessionId,比如 abc123。此时命令在后台跑,你可以继续干别的。等需要结果了,用 process 回收:
process action=poll sessionId=abc123 timeout=15000如果还没结束,改用 log 看当前进度:
process action=log sessionId=abc123 limit=50任务完成后,poll 会返回最终输出,里面就是 du 的两行磁盘占用。整条链路没有任何「傻等」,AI 把后台 id 记着,该收的时候收。
实战踩坑提醒
- poll 的 timeout 不是「超时即失败」
:它只是最多等这么久。到点上没新输出就带着已有内容返回,不报错。想确认是否真的结束,看返回里的状态字段(running / completed),别只看有没有输出。
- kill 是硬终止,不保证优雅
:交互式程序可能留下半截文件或锁。能正常退出的(比如喂 Ctrl-C或q),优先send-keys,kill 留作最后手段。
- list 会暴露所有会话
:会话里可能夹带命令参数、路径甚至临时凭据片段。 process list的输出属于敏感上下文,别把它原样转发到群聊或外部。
- 写交互式程序别忘 EOF
:用 write喂完输入后,若程序在等 stdin 关闭才继续,务必带eof=true,否则它会一直挂着等你。
- 后台任务也有生命周期
:长时间不回收的会话可能已被运行时清理, poll/log找不到 id 时,先list确认真还在。
和 subagents / dashboard 的区别
容易混淆的三个「看后台」能力,边界其实清楚:
process管的是 exec 跑的 shell 命令——你手动或 AI 发起的一条 bash进程。
subagents管的是 AI 子智能体——另一个 AI 在并行干活,用它的 runId 去等/取消。
dashboard/ progress_card是 可视化层——把长任务状态做成能看的卡片,不负责控制。
一句话:process 是给「机器在跑的命令」发指令的;另两个一个管「AI 在跑的分身」,一个管「给人看的面板」。
小结
process 把 OpenClaw 的后台 exec 从「扔出去就不管」变成「可控的生产线」:
list先盘清手头有几个任务;
poll非阻塞地等结果, log随时翻输出;
write/ send-keys/submit/paste负责交互;
kill是最后的止损闸。
掌握这六个动作,你就能让 AI 真正「一边跑着长任务、一边继续干活」,而不是被一条慢命令卡死整个对话。今晚这篇发文本身,就是后台审计命令 + 前台写作并行完成的产物。
关注公众号,获取更多 OpenClaw 实操技巧















































































