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 : 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)
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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é