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

bot*_*t47 16 socat

我想将应用程序输入和输出重定向到 unix 套接字并从另一个会话连接到该套接字。到目前为止,我正在做的事情如下:

在“服务器”端:

socat EXEC:"command" UNIX-LISTEN:/tmp/comm
Run Code Online (Sandbox Code Playgroud)

而在“客户端”方面:

socat UNIX-CONNECT:/tmp/comm -
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但是一旦客户端socat终止,服务器也会终止。但我希望它继续运行并稍后重新连接......我该如何实现?

cuo*_*glm 15

您必须使用fork选项,它在子进程中处理连接,使父进程尝试处理更多连接。

在第一个终端:

$ socat - UNIX-LISTEN:/tmp/comm,fork
Run Code Online (Sandbox Code Playgroud)

在第二个终端:

$ socat UNIX-CONNECT:/tmp/comm -
Run Code Online (Sandbox Code Playgroud)

在第二个终端按Ctrl+ C,切换到第一个终端,看看你的服务器还在运行。