命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
停止后台会话
claude stop <id>claude stop 7c5dcf5dclaude stop <id> 用来停止一个后台会话(background session),也可以写成 claude kill <id>。它属于管理后台会话的 CLI 子命令组,同组的还有 claude agents、claude attach、claude logs、claude respawn、claude rm。这些后台会话由 claude --bg 启动,也可以在 agent view 里派发。
官方文档没有为 claude stop 本身标注最低版本要求。
claude stop <id>
claude kill <id> # 别名,等价
claude stop 7c5dcf5d
<id> 是后台会话的短 ID,来源有两个:
claude --bg 启动会话时会打印出来。claude agents --json 输出里后台会话的 id 字段。每个会话的 ID 就是它在 ~/.claude/jobs/ 下的目录名。
官方文档中 claude stop 只列出了 <id> 这一个参数,没有其他 flag。
同组命令对照:
| 命令 | 作用 |
|---|---|
claude agents | 打开 agent view,监控和派发并行后台会话。需要交互式终端 |
claude agents --json | 以 JSON 数组输出活跃会话,加 --all 会包含已完成的后台会话 |
claude attach <id> | 在当前终端 attach 到后台会话 |
claude logs <id> | 打印后台会话最近的输出 |
claude stop <id> / claude kill <id> | 停止会话 |
claude respawn <id> / claude respawn --all | 重启会话(运行中或已停止的都可以) |
claude rm <id> | 从列表中移除会话 |
claude daemon status | 输出 supervisor 的状态、版本、socket 目录和 worker 数量 |
claude daemon stop --any | 停止 supervisor 进程及其托管的所有后台会话 |
| 对象 | 行为 |
|---|---|
| 会话 transcript | 文档没有直接说明 claude stop 后的情况;claude respawn 可重启已停止的会话并保留其对话,claude rm 之后 transcript 保留在本机,可用 claude --resume 恢复 |
| Claude 启动的后台 shell 命令、dynamic workflow、后台 subagent | 官方文档描述的是会话进程停止或重启时延续到下一个进程,没有单独说明 claude stop 之后的情况;设置 CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1 则随进程一起停止 |
| 运行中的 monitor,以及 subagent 启动的 shell 命令 | 官方文档描述的是会话进程停止或重启时随进程一起停止,没有单独说明 claude stop 之后的情况 |
| 会话状态 | claude agents --json 中该会话的 state 变为 stopped |
先用 claude agents --json 查询状态,再对筛选出的会话执行 stop。官方文档建议脚本读取会话状态时用 claude agents --json,不要直接解析 ~/.claude/jobs/<id>/state.json。
state 的取值有 working、blocked、done、failed、stopped。id 只出现在后台会话上。
下面这个例子由文档中的字段组合而成,文档本身没有给出这段脚本:
# 停止当前所有仍在工作的后台会话
claude agents --json \
| jq -r '.[] | select(.kind == "background" and .state == "working") | .id' \
| xargs -n1 claude stop
只处理某个目录下启动的会话,可以给 claude agents 加 --cwd <path>。文档没有说明 claude stop 能否一次接收多个 ID,所以例子用 xargs -n1 逐个调用。
←、/background、/bg 用于把当前会话转入后台(detach),官方文档写明 detaching 不会停止后台会话;stop 才是停止会话。在会话内部结束会话要用 /stop。stop 只停止会话。claude rm <id> 是把会话从列表移除,同时在安全时删除 Claude 为它创建的 worktree。rm 之后 transcript 保留在本机,可用 claude --resume 恢复。claude daemon stop --any 会停止 supervisor 和它托管的全部后台会话。加 --keep-workers 可以让后台会话继续运行,下一个 supervisor 会重新连接。claude respawn <id> 可以重启会话,并恢复其已保存的对话。claude stop 之后是否延续;设置 CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1 则让它们随进程一起停止。claude stop 用的是短 ID,不是完整 UUID:claude agents --json 的 id 是短 ID,sessionId 是完整 UUID,后者用于 claude --resume。rm 之后 transcript 仍在:claude rm 不会删除 transcript,想清理数据要另用 claude project purge。修复登录过期或即将过期时运行该命令可能导致登出的问题。
修复了选项前缀时从 claude attach / logs / stop / respawn / rm 启动新会话时以命令名作为 prompt 的问题
新增子命令,停止会话
修复了与 background-agent respawn 竞态导致的无声撤销,respawn 现在尊重 stop 指令