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
au deuxième lancement rien ne va plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 import socketserver class H(socketserver.StreamRequestHandler): def handle(self): pass srv = socketserver.ThreadingUnixStreamServer("/tmp/log.sock", H)
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 unavant ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 try: os.remove("/tmp/log.sock") except FileNotFoundError: pass
Je précise que socket.close() et socket.shutdown(2) n'ont rien changé
Partager