我刚开始使用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个进程正在运行?他们的目的是什么?
谢谢, 丰富