Thanks for pointing me to the bug. This is happening to me even with nil or *os.File Stdout and Stderr (I tried both). Is there anything that can be done to guarantee that exec.Cmd.Wait won't block indefinitely? I don't think my subprocess is starting any of its own subprocesses, but I am not completely certain.
On Thu, Jul 9, 2020 at 4:15 PM Ian Lance Taylor <i...@golang.org> wrote: > On Thu, Jul 9, 2020 at 4:14 PM Ian Gudger <i...@iangudger.com> wrote: > > > > I am using Go 1.14 AMD64 on Linux 5.3.0. > > > > When I create a subprocess with exec.Cmd.Start, I can't seem to fully > kill it with exec.Cmd.Process.Kill, or at least not to the satisfaction of > exec.Cmd.Wait. > > > > I am doing something along the lines of: > > cmd := exec.Command(binPath) > > if err := cmd.Start(); err != nil { > > ... > > } > > if err := cmd.Process.Kill(); err != nil { > > ... > > } > > if err := cmd.Wait(); err != nil { > > ... > > } > > > > However, this hangs on Wait. As far as I can tell this shouldn't happen. > Any idea what I might be doing wrong? > > Does the subprocess start any subprocesses itself? Are you capturing > Stdout or Stderr into a bytes.Buffer or similar? See > https://golang.org/issue/23019. > > Ian > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CANFXSj0J-XMQ%3DM0%3DQxzt629a93JcOEtTnntWu7sSfo9TBdOODg%40mail.gmail.com.