Golang:使用exec.ExitError终止os.Process

时间:2017-06-16 20:32:10

标签: go error-handling operating-system

如果我有一个名为“myCmd”的os.Exec对象并且我调用myCmd.Process.Kill(),那么进程的返回代码行为是什么?它会返回一个exec.ExitError吗?我想强行杀死os.Exec进程(即kill -9),让它返回一个exec.ExitError或者我的goroutine可以区分正常cmd退出并返回代码为0的东西。

到目前为止我所拥有的:

"explorer.autoReveal": false

1 个答案:

答案 0 :(得分:0)

Kill()与在流程上调用kill -9相同,它会发送一个无法捕获的SIGKILL。与所有非零退出代码一样,Wait()将返回ExitError

您还可以选择使用Process.Signal(),这样您就可以指定所需的任何信号(例如,SIGINTSIGTERM)。不幸的是,它看起来不像os.ExitError类型允许您将退出代码本身检索为除退出状态字符串之外的任何内容。但是,您仍然可以使用该错误类型的存在或不存在作为非零或零退出状态的指示。