2

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

4

2 回答 2

5

套接字将被关闭 - 操作系统将自动执行此操作,请参阅:使用 SO_REUSEADDR - 先前打开的套接字会发生什么情况?

与其尝试处理不起作用的 SIGKILL,不如在开始时解决问题:

使用SO_REUSEADDR允许您立即重用端口的套接字选项。

于 2014-01-24T10:42:18.143 回答
0

你不能在 SIGKILL 上做任何事情。您应该尝试处理 SIGTERM 和/或 SIGINT 来终止您的服务并关闭套接字。

没有必要发送 SIGKILL 除非

  1. 应用程序忽略 SIGTERM 和 SIGINT
  2. 系统确实需要立即终止应用程序

当您想重新启动服务时,您应该发送 SIGTERM 或 SIGINT 而不是 SIGKILL。

于 2014-01-24T10:15:54.477 回答