如何在死前关闭套接字? 我有一个服务在Linux上创建一个TCP服务器。有时我必须重新启动它,我希望套接字真的关闭。目前它挂起。 我也知道SIGKILL无法处理。 任何人都可以指向正确的方向吗?C++:如何在收到SIGKILL时关闭tcp套接字(服务器)
1
A
回答
4
插座将被关闭 - 操作系统将自动执行此操作,请参阅:Using SO_REUSEADDR - What happens to previously open socket?
,而不是试图处理SIGKILL,这是行不通的,在开始解决问题:
使用SO_REUSEADDR
套接字选项,它允许您立即重用端口。
0
你不能对SIGKILL做任何事情。您应该尝试处理SIGTERM和/或SIGINT来终止您的服务并关闭套接字。
没有必要发送SIGKILL除非
- 应用忽略SIGTERM和SIGINT
- 系统确实需要终止立即申请
当你要重新启动你的服务,你应该送SIGTERM或SIGINT而不是SIGKILL。
+0
好吧,我添加一个处理程序到SIGINT(SIGTERM处理尚未)。我使用从新手重启以停用并重新激活服务器。 – JosephITA
相关问题
- 1. 如何在等待连接时关闭服务器套接字?
- 2. C/Linux TCP套接字服务器
- 3. 服务器端的C++服务器代码关闭套接字
- 4. 多线程TCP服务器:java.net.SocketException:套接字关闭
- 5. 如何关闭在C#中的TCP套接字连接
- 6. 如何在关闭服务器套接字时阻止应用程序关闭。
- 7. 如果套接字未被服务器断开/关闭,如何将套接字重新连接到服务器?
- 8. 服务关闭时收到
- 9. TCP服务器关闭连接
- 10. 在C中的Linux套接字编程,服务器套接字不能关闭
- 11. 如何处理服务器关闭TCP
- 12. TCP服务器不关闭,
- 13. Ruby TCP服务器关闭
- 14. 无法关闭异步C#服务器套接字连接
- 15. 如何在异常时关闭Mule TCP套接字?
- 16. Java套接字服务器仅显示连接关闭后收到的消息
- 17. 如何用C++/QT中的TCP服务器套接字创建Http服务器
- 18. C#套接字TCP客户端/服务
- 19. 同时关闭服务器和客户端套接字连接
- 20. java.net.SocketException:套接字已关闭TCP连接
- 21. 将Java TCP服务器与C#TCP套接字连接到Windows 7中
- 22. 一次性关闭套接字连接=假弹簧集成TCP服务器
- 23. Java套接字 - 关闭到服务器套接字的telnet客户端连接
- 24. 当代理服务器关闭时,网络套接字连接关闭
- 25. TCP Python套接字服务器响应
- 26. Python:异步TCP套接字服务器
- 27. TCP套接字冻结服务器
- 28. 与TCP套接字(服务器)通信
- 29. TCP套接字(服务器)设计
- 30. tcp套接字服务器不发送
非常感谢。我补充说: 'int optval = 1; setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&optval,sizeof optval);' – JosephITA