进程被杀死时通知客户端关闭连接
Closed this issue · 7 comments
Hentioe commented
目前的 tsshd 好像没有这方面的设计。
如果执行 pkill tsshd(给进程发送终止信号)或 reboot(重启系统),客户端那边就直接卡死了。经过连续几分钟的心跳包超时后,客户端才主动关闭连接。
这个机制不一定能 100% 保证客户端收到断开连接的消息,但我想还有必要这么做,能提高体验。
lonnywong commented
现在是有这个功能的,默认 tsshd 被 kill 了之后,客户端会在 100 秒左右自动退出。可通过配置 UdpAliveTimeout
进行调整:
Host test
#!! UdpAliveTimeout 50 # 单位是秒
Hentioe commented
我的意思是在服务端被终止时,客户端立即的主动退出。你这个设置貌似也会影响超时重连吧,如果调小一点才退出还是很显得奇怪要卡死几十秒,设置太小例如几秒那网络不稳定时又可能被退出。
lonnywong commented
如果说某些信号让客户端及早退出,应该是可以做到的。如果说是 kill -9
那是没机会的。
Hentioe commented
是的 所以你打算实现这个吗
lonnywong commented
我周末实现一下。
Hentioe commented
这部分我已经实现了 近期我可能就会开 pr 不过我对 Go 语言不太熟悉 你可能要 rebase 一下
lonnywong commented
不知你是如何做的,按理说几行代码就可以了。