见https://play.golang.org/p/ljovw4QPSl。
此函数在本地执行命令并返回stdout和stderr。它大部分时间都有效,但有时第55行的stdoutbuf.ReadFrom()
调用会返回read |0: bad file descriptor
。我无法弄清楚代码有什么问题。
答案 0 :(得分:1)
在您的命令程序退出并收集之前,没有什么可以保证您的goruoutine被执行。如果您在每个goroutine的开头添加了一个睡眠时间超过命令的生命周期,那么每次都会看到此错误。
在调用Wait命令之前先等待goroutines。这将确保您的goroutine可以继续阅读过程。