アプリケーションの入出力をUNIXソケットにリダイレクトし、別のセッションからそのソケットに接続したいのですが。これまでに行っていることは次のとおりです。
「サーバー」側:
socat EXEC:"command" UNIX-LISTEN:/tmp/comm
そして「クライアント」側では:
socat UNIX-CONNECT:/tmp/comm -
かなりうまくいきますが、クライアント側のsocat
が終了するとすぐに、サーバーも終了します。しかし、実行を続け、後で再接続したいのですが、どうすれば実現できますか?
子プロセスで接続を処理するfork
オプションを使用して、親プロセスがより多くの接続を処理するようにする必要があります。
最初のターミナルで:
$ socat - UNIX-LISTEN:/tmp/comm,fork
2番目のターミナル:
$ socat UNIX-CONNECT:/tmp/comm -
押す Ctrl+C 2番目のターミナルで、最初のターミナルに切り替えて、サーバーがまだ実行中であることを確認します。