dsh_takeover
Take over a DSH conversation's write lock by identifying the holder: resume if free, kill only orphaned service processes, and refuse live or unknown holders unless forced.
Instructions
抢占会话的写锁(DSH 的写锁是跨进程内核信号量,持有者活着就不过期,没有 API 能直接夺走——唯一手段是杀掉持有者进程,所以本工具会先判定持有者是谁):① 若锁其实空着,正常 resume 即可,不会杀任何东西;② 若持有者是本服务自己留下的孤儿进程(MCP 崩了/重启了,子进程还活着握着锁)→ 自动杀掉并接管,安全;③ 若持有者是另一个活着的 dsh-any-agent 实例 → 默认拒绝,传 force=true 才夺;④ 若持有者无法识别(多半是你自己的 DSH GUI 正开着这个会话)→ 绝不杀(那会连你的界面和正在看的对话一起杀掉),只报告,请你在那个窗口里关掉该会话后重试。注意:杀掉正在跑回合的持有者会中断那一轮(会话日志记为 interrupted),会话本体不受损。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | 仅用于"另一个活着的 dsh-any-agent 实例持有"这一种情况;对 GUI/未知持有者无效(永远不杀)。 | |
| conversation_id | Yes | 会话 id,来自 dsh_start 或 dsh_list。 |