最简单的unix非阻塞“广播”套接字

我有非常规运行程序输出string,我需要将此输出发送到某种types的套接字,可以分配到docker容器,并可以由多个侦听器,甚至没有听。

我知道标准的FIFO命名pipe道,但它希望有一个监听器和通知器连接,直到它保持阻塞的那一刻。

有没有办法获得这种types的套接字与“标准”的Linux命令或守护进程? 我正在寻找解决scheme与最小数量的依赖关系,轻松维护…

编辑:

我发现socat可以用这种方式工作,但我无法分享给所有的客户。

shell1$ socat pipe:/tmp/test-in unix-listen:/tmp/test-out,fork shell2$ socat - UNIX-CONNECT:/tmp/test-out shell3$ socat - UNIX-CONNECT:/tmp/test-out shell4$ echo "test" > socat - UNIX-CONNECT:/tmp/test-in (shell2) test 

find解决scheme类似的答案https://unix.stackexchange.com/questions/195880/socat-duplicate-stdin-to-each-connected-client 。 Socat似乎不能这样工作,但从nmap包ncat。

它适用于Unixsockets:

 % mkfifo /tmp/messages-in % exec 8<>/tmp/messages-in # hold the fifo open % ncat -l -U /tmp/messages-out -k --send-only < /tmp/messages-in % echo "test" > /tmp/messages-in % # every client connected to /tmp/messages-out will get "test" message