docs: converge trans shell examples

This commit is contained in:
Codex
2026-06-15 05:25:59 +00:00
parent e504b7b3b4
commit ceb3fb4627
15 changed files with 65 additions and 65 deletions
+2 -2
View File
@@ -32,13 +32,13 @@ trans <PROVIDER_ID>:win skills --limit 20
## Windows Long-Lived Process Detach
`trans <PROVIDER_ID>:win cmd ...``trans <PROVIDER_ID> script -- powershell.exe ...` 适合短命令、只读探测和有界 skill 调用,不适合直接启动 Windows 长驻进程。Windows `cmd start``cmd /c ... &`、PowerShell `Start-Process -PassThru` 或带 stdout/stderr 重定向的子进程,仍可能被 provider-gateway/SSH broker 按子进程树或继承句柄等待;结果是远端进程其实已启动,但 `trans` 会持续占用 provider session,后续 D601/G14 高频调用被 provider session lock 串行排队。
`trans <PROVIDER_ID>:win cmd ...``trans <PROVIDER_ID>:win ps ...` 适合短命令、只读探测和有界 skill 调用,不适合直接启动 Windows 长驻进程。Windows `cmd start``cmd /c ... &`、PowerShell `Start-Process -PassThru` 或带 stdout/stderr 重定向的子进程,仍可能被 provider-gateway/SSH broker 按子进程树或继承句柄等待;结果是远端进程其实已启动,但 `trans` 会持续占用 provider session,后续 D601/G14 高频调用被 provider session lock 串行排队。
长驻 Windows 进程必须使用明确脱离当前 `trans` 会话的启动模型:
- 优先把启动参数写入节点私有 profile 或 `.cmd`/`.ps1` 文件,再通过 Windows Task Scheduler、Windows Service、NSSM、PM2 Windows service 或同等 supervisor 启动。
- 如果只是临时实验,使用 `schtasks /Create ... /TR "<cmd file>" /SC ONCE ... /F` 后再 `schtasks /Run ...`,并把 stdout/stderr 写入固定日志文件;验证用独立短命令读取 `tasklist``Get-CimInstance Win32_Process`、日志尾部和服务健康。
- 不要在 `D601:win cmd` 内用 `start``Start-Process` 直接启动 `hwlab-gateway`、串口 monitor、Codex app-server、Keil job watcher 等长驻进程;如果误用了并导致 `trans` 卡住,应先停止对应 Windows PID 或本地被卡住的 trans/tran broker 进程,再改为 detached supervisor。
- 不要在 `D601:win cmd` / `D601:win ps` 内用 `start``Start-Process` 直接启动 `hwlab-gateway`、串口 monitor、Codex app-server、Keil job watcher 等长驻进程;如果误用了并导致 `trans` 卡住,应先停止对应 Windows PID 或本地被卡住的 trans/tran broker 进程,再改为 detached supervisor。
- 启动命令必须避免从 WSL UNC cwd 进入 Windows cmd;长驻进程的 `cwd` 应是 Windows 盘符路径,例如 `F:\Work\HWLAB`,日志也写到同一节点私有 `.state` 或 skill state 目录。
- 长驻进程的验收标准不是“启动命令返回”,而是独立短命令能看到 PID、日志首行、health endpoint 或 cloud-side session/resource/capability 已注册。