long-running-process
Installation
SKILL.md
长运行进程安全启动(Windows)
概述
OpenCode shell 在 Windows 上跑 PowerShell,并有可配置超时;超时会 taskkill /T /F 杀命令树。当前执行链通常不能自动降级重试。
核心风险:
- 无界轮询(
while无上限)→ 命令永不返回 → 被平台杀死 - 在 OpenCode shell 内用
Start-Process启长运行进程 → 子进程可能继承 pipe → Nodeclose不触发 - WMI 启动的应用是 detached 的:
wait-ready失败或 shell 超时后,app 仍可能存活。无 RunId ownership 时会变成 unmanaged orphan
推荐模型:WMI → ASCII-only cmd launcher(仅含 pwsh/supervisor/config 的 ASCII 路径)→ PowerShell supervisor → ProcessStartInfo.ArgumentList 启应用(AppPid)。用户参数与 Unicode 工作目录只在 UTF-8 JSON config 中。ControlPid 为 cmd 树根。State:%TEMP%\opencode-long-running\<RunId>.json。
范围:Windows(PowerShell 7+)应用进程(dev server、构建、watcher)。浏览器自动化工具进程不在范围。Unix/macOS 不在范围。
与恢复 skill:中断后续派前须证明旧 writer 已停且残留可复用/已停;应用侧 stop/cleanup 由本 skill 脚本完成。