用于包装进程以允许多个连接的工具

时间:2012-02-25 03:41:44

标签: networking process socat

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

我到目前为止找到的最接近的工具是使用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!)

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

有解决方法吗?或者还有其他工具吗?如果可能的话,该工具应该“序列化”输入,因此不存在竞争条件。

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

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,在切换左右地址后它就消失了。

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

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