我正在运行bash命令在后台启动服务器:"./ starServer&"但是,我的服务器需要几秒钟才能启动.我想知道我能做些什么来不断检查它正在运行的端口,以确保它在我实际继续前进之前做其他事情.我在golang api中找不到任何有助于此的东西.任何帮助表示赞赏!
c := exec.Command("/bin/sh", "-c", command)
err := c.Start()
if err != nil {
log.Fatalf("error: %v", err)
}
l, err1 := net.Listen("tcp", ":" + port)
Run Code Online (Sandbox Code Playgroud)
Sto*_*ica 12
您可以使用net.DialTimeout或连接到端口net.Dial,如果成功,立即关闭它.您可以循环执行此操作直到成功.
for {
conn, err := net.DialTimeout("tcp", net.JoinHostPort("", port), timeout)
if conn != nil {
conn.Close()
break
}
}
Run Code Online (Sandbox Code Playgroud)
一个简单的小型图书馆(我写的)出于类似的目的也可能是有意义的:portping.