shadowsocks / shadowsocks-go

go port of shadowsocks (Deprecated)
http://shadowsocks.github.io/shadowsocks-go
Apache License 2.0
6.61k stars 3.32k forks source link

更新配置 reload 的问题 #207

Closed josh-chan closed 7 years ago

josh-chan commented 7 years ago

passwordManager 里 listener.Close() 貌似没有立刻关闭连接,新的配置同样的端口 Listen 时就会报错,所以每次改配置都要重启才有保证服务更新。 有木有好的方法等待 listener 彻底 close 再重新 listen 呢?

arthurkiller commented 7 years ago

@yjsslab 应该是需要等到port 被归还给系统,这个是正常的吧?close 应该是 tcp_close 这个调用。因此会有一个关闭的过程。如果是tcp_shutdown 就立刻断开了应该

chentyson commented 6 years ago

调用 close 是正常,但由于没有等待关闭,马上 go 了一个 run() , 导致端口重新绑定是报错。 也就是说信号监听更新密码的功能, 是有问题的