`devproxy --detach` blocks callers that capture its output

未关闭
#2,080 0 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

@waldekmastykarz 已经在做这个了。

开始于 2026年11月5日。

  • #2094 来自 @waldekmastykarz —— 未关闭

评估

这个 Issue 还没有评估数据。

描述

work in progress

Problem

On Windows, the agent ran:

devproxy --detach --no-first-run -c ..\devproxy\devproxyrc.json 2>&1 | Out-String

The command never returned: no output after 45 s, and the shell had to be killed. Dev Proxy itself was running. The agent abandoned --detach and wrote its own background-spawn logic.

The daemon is started with RedirectStandardOutput/Error = true (Program.cs). Likely cause: the detached child inherits the caller's pipe handles, so anything that reads the parent's output to EOF waits for the daemon to exit. This affects | Out-String, $(devproxy --detach) in bash, and subprocess or execSync with pipes. Not yet confirmed on macOS or Linux.

Proposal

  • Start the daemon with stdio fully detached (null, or the log file) and without inheriting the caller's handles.
  • Make sure the parent prints its startup info (PID, URLs, log file) and exits immediately.
  • Add an integration test that runs devproxy --detach through a captured pipe with a timeout. The existing ProcessSmokeTests cover --detach, but not with captured output.

Found while evaluating how coding agents use Dev Proxy: VS Code + GitHub Copilot Chat with Claude Sonnet 5.5, Dev Proxy 4.0.0 on Windows, 5 runs of the task "add a CI script that starts Dev Proxy in the background, starts and stops recording through the API around npm start, and shuts Dev Proxy down through the API".

主要语言
C#
星标
841
派生
90
平均合并
2 天 10 小时
30 天内合并 PR
63

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

dotnet/dev-proxy 的其他 Issue

查看 dotnet/dev-proxy 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。