我想将应用程序的输入和输出重定向到 unix 套接字,并从另一个会话连接到该套接字。到目前为止我正在做的事情如下:
在“服务器”端:
socat EXEC:"command" UNIX-LISTEN:/tmp/comm
在“客户端”方面:
socat UNIX-CONNECT:/tmp/comm -
它工作得很好,但是一旦客户端socat
终止,服务器也会终止。但我希望它继续运行并稍后重新连接...我该如何实现这一点?
答案1
您必须使用fork
选项,它在子进程中处理连接,使父进程尝试处理更多连接。
在第一个终端中:
$ socat - UNIX-LISTEN:/tmp/comm,fork
在第二个航站楼:
$ socat UNIX-CONNECT:/tmp/comm -
在第二个终端中按Ctrl+ C,切换到第一个终端并查看您的服务器仍在运行。