0

我想构建一个生成 Go 服务器的 Grunt 任务,然后在 Go 源文件更改时杀死并重新生成它。

我正在产生这样的 Go 进程:

goProcess = child_process.exec('go run main.go', ...

后来我试图杀死这样的过程:

if (goProcess) {
    goProcess.kill('SIGINT');
}

但是 Go 进程并没有消亡。

如何正确终止 Node 中的 Go 进程?

我在这里有一个工作示例https://github.com/sporto/go-must-die

4

1 回答 1

0

child_process.exec在 shell 中运行命令,似乎正在返回 shell 进程的 PID。改用 spawn。

go run创建一个可执行文件并使用不同的 PID 运行它。go build main.go尝试使用node.js构建二进制文件并运行该二进制文件。

goProcess = child_process.spawn('./main')
于 2013-10-16T05:01:57.827 回答