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?

Max Ried
la source

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.

cuonglm
la source