Arrêtez socat de se terminer lorsque l'autre extrémité se ferme


12

Je voudrais rediriger l'entrée et la sortie d'une application vers un socket Unix et me connecter à ce socket à partir d'une autre session. Ce que je fais jusqu'à présent est le suivant:

Côté "serveur":

socat EXEC:"command" UNIX-LISTEN:/tmp/comm

Et du côté "client":

socat UNIX-CONNECT:/tmp/comm -

Cela fonctionne plutôt bien, mais dès que le côté client se socattermine, le serveur se termine également. Mais j'aimerais qu'il continue de fonctionner et se reconnecte plus tard ... Comment puis-je accomplir cela?

Réponses:


12

Vous devez utiliser l' forkoption, qui gère une connexion dans un processus enfant, pour que le processus parent tente de gérer plus de connexions.

Dans le premier terminal:

$ socat - UNIX-LISTEN:/tmp/comm,fork

Dans le deuxième terminal:

$ socat UNIX-CONNECT:/tmp/comm -

Appuyez sur Ctrl+ Cdans le deuxième terminal, basculez vers le premier terminal et voyez que votre serveur fonctionne toujours.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.