进程退出时如何保证占用的端口完全释放?

有时候发现某端口未释放,进程重启失败了。

已邀请:

sheepbao - https://sheepbao.github.io 爱go,爱编程,领域网络开发,流媒体、分布式、网络加速

赞同来自: itfanr

进程退出,资源会被系统回收的,端口自然也会被释放,估计释放的不够及时,你重启太快了,试试延时一会再重启

ming

赞同来自: itfanr

通过给socket设置SO_REUSEADDR能够重用端口,GO里面怎么设置自己查下吧。

vz

赞同来自: itfanr

github 上有支持 Reuse Port 的 listener,通过 POSIX 的 dup 调用实现,目前不支持 Windows。 我的推荐做法还是重试

domac - life should be func

赞同来自:

我也遇到过,我现在的重启脚本也跟楼上的朋友介绍的方式差不多,增加一个间隔

astaxie - 创造、获取、分享、传播和应用Go

赞同来自:

我们用upstart管理的也有同样的问题,每次重启端口释放不够快,好在他有重试机制

tonyluj - Go

赞同来自:

time.Sleep(time.Second * 1)

要回复问题请先登录注册