1

是否有任何工具可以包装进程(例如 Bash),以便您可以与“共享”进程建立“多个”网络连接。每个连接都可以向进程发送输入(例如设置环境变量、运行外部命令),并从进程中获得相应的输出。

到目前为止,我发现的最接近的工具是 using socat,如下所示:

server% socat exec:bash tcp-listen:1234,reuseaddr,fork

client1% socat - tcp:localhost:1234
client1% pwd
client1% x=123

client2% socat - tcp:localhost:1234
client2% echo $x   # print 123 (but on client1!)

但问题是当有多个活动连接时,输出(来自服务器)可能不会到达发送相应输入的客户端。

有解决方法吗?还是有其他工具?如果可能的话,该工具应该“序列化”输入,这样就不会有竞争条件。

我的目的是包装一个使用多个库的脚本,这样我就不必每次都启动它(这需要相当长的时间),我只是连接到正在运行的脚本进程,并发送一个要运行的命令。

4

1 回答 1

0

我有一个类似的问题,它在左右切换地址后消失了。

所以你可以试试你的情况:

socat tcp-listen:1234,reuseaddr,fork exec:bash
于 2014-04-10T18:27:36.173 回答