もう一方の端が閉じたときにsocatが終了しないようにする

もう一方の端が閉じたときにsocatが終了しないようにする

私のアプリケーションの入力と出力をUnixソケットにリダイレクトし、別のセッションでそのソケットに接続したいと思います。これまで私がやっていることは次のとおりです。

「サーバー」側から:

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

「クライアント」側:

socat UNIX-CONNECT:/tmp/comm -

うまくいきますが、クライアントがsocatシャットダウンするとサーバーもシャットダウンします。しかし、それを実行し続け、後で再接続したいと思います。どうすればいいですか?

答え1

fork子プロセスは接続を処理し、親プロセスがより多くの接続を処理できるようにするオプションを使用する必要があります。

最初の端末で:

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

2番目のターミナルで:

$ socat UNIX-CONNECT:/tmp/comm -

2番目の端末でCtrl+を押してC最初の端末に切り替えて、サーバーがまだ稼働していることを確認してください。

関連情報