当另一端关闭时阻止 socat 终止

当另一端关闭时阻止 socat 终止

我想将应用程序的输入和输出重定向到 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,切换到第一个终端并查看您的服务器仍在运行。

相关内容