如何从 Node 正确杀死 Go 进程

我想构建一个 Grunt 任务,它生成一个 Go 服务器,然后在 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


慕妹3242003
浏览 180回答 1
1回答

沧海一幻觉

child_process.exec在 shell 中运行命令,似乎正在返回 shell 进程的 PID。使用 spawn 代替。go run创建一个可执行文件并使用不同的 PID 运行它。尝试使用go build main.gonode.js构建二进制文件并运行该二进制文件。goProcess = child_process.spawn('./main')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go