You should use command.Wait() instead of command.Process.Wait(). If there are any pipes open command.Wait() is the only call that can clean them up. If you use command.Process.Wait() instead of command.Wait() this might potentially cause fd leaks. See http://golang.org/src/pkg/os/exec/exec.go?s=7688:7714#L293