我想要一个UNIX域套接字,例如通过TCP公开的/var/program/program.cmd,让它在端口12345上说。我还希望它在后台全时运行。
最好的方法是什么?如果相关,则系统正在运行Ubuntu 12.04.2。
同样,通过提出的解决方案,它可以在删除并重新创建的域套接字中生存下来吗?
编辑
这是初始化脚本形式的已接受答案的结果:https : //github.com/Wirehive/haproxy-remote
我想要一个UNIX域套接字,例如通过TCP公开的/var/program/program.cmd,让它在端口12345上说。我还希望它在后台全时运行。
最好的方法是什么?如果相关,则系统正在运行Ubuntu 12.04.2。
同样,通过提出的解决方案,它可以在删除并重新创建的域套接字中生存下来吗?
编辑
这是初始化脚本形式的已接受答案的结果:https : //github.com/Wirehive/haproxy-remote
Answers:
您可以socat
用来将unix套接字导出为TCP套接字。这是这样做的命令:
socat TCP-LISTEN:12345 UNIX-CONNECT:/var/program/program.cmd
这将在端口12345上创建侦听TCP套接字,该端口将连接到程序的Unix套接字。
对于删除问题,我自己没有进行测试。您可以验证并告诉我们:)
注意:
您可能找不到安装的socat,只需输入:apt-get install socat
即可安装。
&
在命令末尾附加。
socat TCP-LISTEN:12345,reuseaddr,fork,su=haproxy UNIX-CLIENT:/var/program/program.cmd
。唯一的问题是如何让它在后台运行?