首页 > 解决方案 > gRPC Golang 示例服务器运行 2 个进程?

问题描述

我刚开始使用 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 运行了一次psgrepping:

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的程序,我看到了 2 个进程:

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个进程在运行?他们的目的是什么?

谢谢,丰富

标签: gogrpc

解决方案


推荐阅读