Linux
如何通過 TCP 直接公開 UNIX 域套接字
我想要一個 UNIX 域套接字,例如 /var/program/program.cmd,通過 TCP 公開,假設在埠 12345 上。我還希望它在後台全職執行。
最好的方法是什麼?如果相關,則係統正在執行 Ubuntu 12.04.2。
此外,對於建議的解決方案,它是否能在被刪除和重新創建的域套接字中倖存下來?
編輯
這是以 init 腳本形式接受的答案的結果: https ://github.com/Wirehive/haproxy-remote
您可以使用
socat
將您的 unix 套接字導出為 TCP 套接字。這是執行此操作的命令:socat TCP-LISTEN:12345 UNIX-CONNECT:/var/program/program.cmd
這將在埠 12345 上創建 TCP 套接字偵聽,該套接字將連接到您程序中提到的 unix 套接字。
對於刪除問題,我自己沒有測試。你可以驗證它並告訴我們:)
注意: 你可能沒有安裝 socat,你只需要輸入:
apt-get install socat
來安裝它。