【发布时间】:2017-11-19 17:17:57
【问题描述】:
如果我有一个名为“myCmd”的 os.Exec 对象并且我调用了 myCmd.Process.Kill(),那么该进程的返回码行为是什么?它会返回 exec.ExitError 吗?我想强行杀死 os.Exec 进程(i.eo kill -9),让它返回一个 exec.ExitError 或我的 goroutine 可以区分为返回代码 0 的正常 cmd 退出的东西。
到目前为止我所拥有的:
myCmd.Start()
var cmdWatcher = func(childCmd os.Cmd) {
err := childCmd.Wait()
if exitErr, k := err.(*exec.ExitError); k {
fmt.Print("ExitError detected")
}
return
}
go cmdWatcher(myCmd)
myCmd.Process.Kill()
【问题讨论】:
-
就像文档说的那样,非零退出返回
*exec.ExitError。你有没有试过这个,你有什么问题?
标签: go error-handling operating-system