Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何关闭golang中的rpc服务器?_Go - Fatal编程技术网

如何关闭golang中的rpc服务器?

如何关闭golang中的rpc服务器?,go,Go,我使用上面的代码启动了一个rpc服务器。因为我想把它关掉,我试过了 var listener net.Listener if listener, err = net.Listen("tcp",address); err != nil { return } server = rpc.NewServer() server.Register(new(TunnelRPC)) go server.Accept(listener) 但它不起作用,错误在于使用封闭网络连接 如何关闭此rpc服务器

我使用上面的代码启动了一个rpc服务器。因为我想把它关掉,我试过了

var listener net.Listener
if listener, err = net.Listen("tcp",address); err != nil {
    return 
}
server = rpc.NewServer()
server.Register(new(TunnelRPC))

go server.Accept(listener)
但它不起作用,错误在于
使用封闭网络连接

如何关闭此rpc服务器?

//等待终止信号
listener.close()
中断信号:=接通(切换操作信号,1) signal.Notify(interruptSignal、syscall.SIGINT、syscall.SIGTERM)
//等待终止信号
中断信号:=接通(切换操作信号,1)
signal.Notify(interruptSignal、syscall.SIGINT、syscall.SIGTERM)

这与我的问题类似。@Kousik您确定有一个名为Shutdown()的API吗?我正在使用go 1.13,但找不到。我正在查看其他一些软件包。抱歉,这与我的问题类似。@Kousik您确定有名为Shutdown()的API吗?我正在使用go 1.13,但找不到。我正在查看其他一些软件包。对不起,这是个好答案。我发现我不需要关闭服务器。拒绝请求就是我想要的。这是一个很好的答案。我发现我不需要关闭服务器。拒绝请求就是我想要的。
    // Wait for termination signal
    interruptSignal := make(chan os.Signal, 1)
    signal.Notify(interruptSignal, syscall.SIGINT, syscall.SIGTERM)
    <-interruptSignal

    // Terminate the server
    server.GracefulStop()
    listener.Close()