Impedisci a socat di terminare quando l'altra estremità si chiude


12

Vorrei reindirizzare l'input e l'output di un'applicazione su un socket unix e connettermi a quel socket da un'altra sessione. Quello che sto facendo finora è il seguente:

Sul lato "server":

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

E dal lato "client":

socat UNIX-CONNECT:/tmp/comm -

Funziona abbastanza bene, ma non appena socattermina il lato client, termina anche il server. Ma mi piacerebbe che continuasse a funzionare e riconnettermi più tardi ... Come posso farlo?

Risposte:


12

Devi usare fork opzione, che gestisce una connessione in un processo figlio, fare in modo che il processo genitore tenti di gestire più connessioni.

Nel primo terminale:

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

Nel secondo terminale:

$ socat UNIX-CONNECT:/tmp/comm -

Premi Ctrl+ Cnel secondo terminale, passa al primo terminale e vedi che il tuo server è ancora in esecuzione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.