【发布时间】:2021-07-23 04:57:14
【问题描述】:
目前,我正在使用 Golang os.exec.Cmd.Process.Kill() 方法终止一个进程(在 Ubuntu 机器上)。
这似乎会立即终止进程,而不是优雅地终止。我正在启动的一些进程也会写入文件,这会导致文件被截断。
我想用 SIGTERM 而不是使用 Golang 的 SIGKILL 优雅地终止进程。
这是一个使用 cmd.Process.Kill() 启动然后终止的进程的简单示例,我想要在 Golang 中替代使用 SIGTERM 而不是 SIGKILL 的 Kill() 方法,谢谢!
import "os/exec"
cmd := exec.Command("nc", "example.com", "80")
if err := cmd.Start(); err != nil {
log.Print(err)
}
go func() {
cmd.Wait()
}()
// Kill the process - this seems to kill the process ungracefully
cmd.Process.Kill()
【问题讨论】:
标签: linux go ubuntu process operating-system