有没有办法终止在 Golang 中以 os.exec 启动的进程?例如(来自 http://golang.org/pkg/os/exec/#example_Cmd_Start ),
cmd := exec.Command("sleep", "5")
err := cmd.Start()
if err != nil {
log.Fatal(err)
}
log.Printf("Waiting for command to finish...")
err = cmd.Wait()
log.Printf("Command finished with error: %v", err)
有没有办法提前终止该进程,也许在 3 秒后?
提前致谢
原文由 Tech163 发布,翻译遵循 CC BY-SA 4.0 许可协议
运行并终止
exec.Process
:在超时后运行并终止
exec.Process
:在 Go 文档 中查看此示例
遗产
在 Go 1.7 之前,我们没有
context
包,这个答案是不同的。使用通道和 goroutine 在超时后运行并终止
exec.Process
:进程结束并通过
done
接收到它的错误(如果有),或者 3 秒过去了并且程序在完成之前被终止。