I have been running a server with:
go run server.go &
When I am done with the process, this requires me to kill the process. The way I have been doing this is with
kill PID of the
go run process.
However, I've noticed my server appears connected still. Investigating further it seems that there are other processes go is starting which appear to "keep alive" my server:
$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
When I kill this associated process, too, I see that my connection is released as expected.
Is there a better way to "really" kill a golang process than
kill PID? Or is there a reason why there are these phantom processes?
I have resorted to killing both but this seems... strange.
$ go version go version go1.5.4 darwin/amd64