我想构建一个产生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
答案 0 :(得分:0)
child_process.exec
在shell中运行命令,似乎正在返回shell进程的PID。请改用spawn。
go run
创建一个可执行文件并使用不同的PID运行它。尝试使用go build main.go
构建二进制文件并从node.js运行二进制文件。
goProcess = child_process.spawn('./main')