gRPC Golang示例服务器运行2个进程吗?

时间:2020-08-13 22:00:31

标签: go grpc

我刚开始使用Go编写gRPC。我使用以下命令启动服务器:

go run greeter_server/main.go

我运行了关联的客户端,并且全部按预期工作。我天真地ps -aux | grep greeter,然后杀死了相关的过程。我重新启动服务器,并收到一个错误消息,说明端口50051已被使用。我再次运行ps,但没有看到服务器进程。然后我跑了:

lsof -nP -iTCP -sTCP:LISTEN | grep 50051
main      52229 rich_youngkin    3u  IPv6 0x8f763a4a32733ba7      0t0  TCP *:50051 (LISTEN)

那令人困惑。然后,我为该pid运行了另一个ps grepping:

ps uax | grep 52229
rich_youngkin    52229   0.0  0.0  4986700   6384 s000  S     3:29PM   0:00.01 /var/folders/9z/lyfc9l3500b_111_x89br7bh0000gn/T/go-build096317928/b001/exe/main

我终止了此过程,然后重新启动了服务器。现在稍微聪明一点,我运行了一个稍微不同的ps,然后看到了两个过程:

ps aux | grep "/main"                                                                               1 ✘    15:49:25 
rich_youngkin    60758   0.0  0.0  4985676   6356 s000  S     3:49PM   0:00.01 /var/folders/9z/lyfc9l3500b_111_x89br7bh0000gn/T/go-build997935897/b001/exe/main
rich_youngkin    60735   0.0  0.1  5113896  20876 s000  S     3:49PM   0:00.86 go run greeter_server/main.go

为什么2个进程正在运行?他们的目的是什么?

谢谢, 丰富

0 个答案:

没有答案