杀死“go run”进程导致的幻像进程是什么?

时间:2016-08-05 15:28:47

标签: go

我一直在运行服务器:

go run server.go &

当我完成这个过程时,这需要我杀死这个过程。我这样做的方式是使用kill PID进程的go run

但是,我注意到我的服务器仍然显示为已连接。进一步调查似乎还有其他进程正在开始,似乎"保持活力"我的服务器:

$ps aux | grep go
username   70481   0.0  0.0 573416816   5228   ??  S     3:15PM   0:00.63 /var/folders/wf/89r2567s5hv48lj1g9l65mbw0000gp/T/go-build062422854/command-line-arguments/_obj/exe/server
username   70472   0.0  0.0 573407408   7720   ??  S     3:15PM   0:00.80 go run server.go

当我杀死此关联进程时,我发现我的连接已按预期发布。

是否有更好的方式来实现"杀死golang进程而不是kill PID?或者是否存在这些幻像过程的原因?

我已经采取了杀死两个,但这似乎......很奇怪。

$ go version
go version go1.5.4 darwin/amd64

1 个答案:

答案 0 :(得分:2)

你称之为“幻影进程”的是你的服务器,这就是为什么杀死它会杀死你的服务器。另一个是“go run”实用程序本身,它编译代码然后运行生成的可执行文件。