ソケットをリッスンするアプリケーションがあります。このアプリケーションはnagiosによって監視されています。問題は、nagiosがソケットを開いて直接閉じることです。私のアプリケーションソケットはCLOSE_WAITのままです。そして、私はこれがなぜ起こるのか理解していません。エラーが発生し、ソケットが強制終了されます。
while request=="":
try:
request = self.client.recv ( 1024 ).rstrip()
except socket.timeout, msg:
log.error( "no request")
self.client.close()
return
except socket.error, msg:
print msg
self.client.close()
return
except msg:
log.error(msg)
self.client.close()
return
これを適切にキャッチする方法はありますか?