私のアプリケーションの入力と出力を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最初の端末に切り替えて、サーバーがまだ稼働していることを確認してください。