problème SO_REUSEADDR avec socket AF_UNIX
bonjour,
Je voudrais utiliser des sockets unix pour récupérer depuis différents workers des logs via logging.handlers.SocketHandler et les récupérer dans un process à part.
Cependant je voudrais utiliser des sockets unix plutôt qu'un tuple host:port
Le problème étant qu'il met impossible de ne pas me heurter à OSError: [Errno 98] Address already in use si je relance le processus.
voici le code minimal de repro
Code:
1 2 3 4 5 6 7
| import socketserver
class H(socketserver.StreamRequestHandler):
def handle(self):
pass
srv = socketserver.ThreadingUnixStreamServer("/tmp/log.sock", H) |
au deuxième lancement rien ne va plus
Jusqu'à présent la question aurait plus de sens dans un forum unix, en faite ma vraie question c'est existe t'il un moyen build-in à socket ou socketserver de gérer ça sans que j'ai un faire un
Code:
1 2 3 4
| try:
os.remove("/tmp/log.sock")
except FileNotFoundError:
pass |
avant ?
Je précise que socket.close() et socket.shutdown(2) n'ont rien changé