我想要一个 UNIX 域套接字,例如 /var/program/program.cmd,通过 TCP 公开,比如说在端口 12345 上。我还希望它在后台全时运行。
最好的方法是什么?如果相关,系统正在运行 Ubuntu 12.04.2。
另外,提出的解决方案是否可以在域套接字被删除并重新创建后继续存在?
编辑
以下是以初始化脚本形式呈现的已接受答案的结果: https://github.com/Wirehive/haproxy-remote
答案1
您可以使用socat
将 unix 套接字导出为 TCP 套接字。执行此操作的命令如下:
socat TCP-LISTEN:12345 UNIX-CONNECT:/var/program/program.cmd
这将创建监听端口 12345 的 TCP 套接字,该套接字将连接到程序中提到的 unix 套接字。
对于删除问题,我没有亲自测试过。你可以验证一下并告诉我们:)
笔记:
您可能没有找到已安装的socat,您只需输入:apt-get install socat
即可安装它。