首页 > 解决方案 > 如何检测 linux 端口是否被 Go 中的进程绑定?

问题描述

我正在 GO 中编写一些 e2e 测试,其中测试 ldap 服务器通过 Go 例程运行。然后我通过t.Run(). 有时测试失败是因为服务器尚未启动。在开始测试之前,我尝试添加最多 10 秒的睡眠时间。但是事情仍然不稳定(尤其是在 travis ci 上)。

我可能会在调用之前使用 ldap 客户端来检测连接操作是否成功t.Run()。但是我想知道是否有一个更通用的解决方案,一个 Go 进程可以检查一个端口是否已经被某个进程绑定。我正在寻找类似lsofnetstat在 Go 中的东西。

我在网上搜索并找到了一些net.Listen用于绑定该端口的解决方案,看看是否成功。显然我不想这样做,因为那将与我自己的代码发生冲突。欢迎任何想法!

谢谢。

标签: linuxgo

解决方案


推荐阅读