C ++:接收SIGKILL时如何关闭tcp套接字(服务器)

时间:2014-01-24 10:10:42

标签: c++ sockets tcp sigkill

如何在死前关闭套接字? 我在linux上有一个创建TCP服务器的服务。有时我必须重新启动它,我希望套接字真的关闭。此刻它挂了。 我也知道SIGKILL无法处理。 有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:4)

套接字将关闭 - 操作系统将自动执行此操作,请参阅:Using SO_REUSEADDR - What happens to previously open socket?

而不是试图处理不起作用的SIGKILL,而不是在开始时解决问题:

使用SO_REUSEADDR套接字选项,可以立即重复使用该端口。

答案 1 :(得分:0)

你无法对SIGKILL做任何事情。您应该尝试处理SIGTERM和/或SIGINT以终止服务并关闭套接字。

除非

,否则无需发送SIGKILL
  1. 应用程序忽略SIGTERM和SIGINT
  2. 系统确实需要立即终止应用程序
  3. 如果要重新启动服务,则应发送SIGTERM或SIGINT而不是SIGKILL。