2014-01-24 50 views

回答

4

插座將被關閉 - 操作系統將自動執行此操作,請參閱:Using SO_REUSEADDR - What happens to previously open socket?

,而不是試圖處理SIGKILL,這是行不通的,在開始解決問題:

使用SO_REUSEADDR套接字選項,它允許您立即重用端口。

+0

非常感謝。我補充說: 'int optval = 1; setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&optval,sizeof optval);' – JosephITA

0

你不能對SIGKILL做任何事情。您應該嘗試處理SIGTERM和/或SIGINT來終止您的服務並關閉套接字。

沒有必要發送SIGKILL除非

  1. 應用忽略SIGTERM和SIGINT
  2. 系統確實需要終止立即申請

當你要重新啓動你的服務,你應該送SIGTERM或SIGINT而不是SIGKILL。

+0

好吧,我添加一個處理程序到SIGINT(SIGTERM處理尚未)。我使用從新手重啓以停用並重新激活服務器。 – JosephITA

相關問題