TCPを介してUNIXドメインソケットを直接公開する方法


13

たとえば、/ var / program / program.cmdなどのUNIXドメインソケットをTCP経由で公開し、ポート12345で使用できるようにします。これをバックグラウンドでフルタイムで実行することもできます。

これを行う最良の方法は何ですか?関連する場合、システムはUbuntu 12.04.2を実行しています。

また、提案されたソリューションでは、ドメインソケットを削除して再作成しても存続しますか?

編集

ここに、受け入れられた回答の結果を初期化スクリプトの形式で示します。https//github.com/Wirehive/haproxy-remote

回答:


18

socatUNIXソケットをTCPソケットとしてエクスポートするために使用できます。これを行うコマンドは次のとおりです。

socat TCP-LISTEN:12345 UNIX-CONNECT:/var/program/program.cmd

これにより、ポート12345でリッスンするTCPソケットが作成され、プログラムの上記のUNIXソケットに接続されます。

削除の問題については、自分でテストしませんでした。あなたはそれを検証し、それについて私たちに伝えることができます:)

注: socatがインストールされていない場合があります。入力するだけでapt-get install socatインストールできます。


1
各通信の後に終了しましたが、それはほとんど機能していました。遊んだ後、私は次のように成功していますsocat TCP-LISTEN:12345,reuseaddr,fork,su=haproxy UNIX-CLIENT:/var/program/program.cmd。唯一の質問は、バックグラウンドでどのように実行するのですか?
SimonJGreen

@SimonJGreen:これは入力を必要とする対話型コマンドではないため&、コマンドの最後に追加してみてください。
ハレド

OK提案を実行し、それを処理する初期化スクリプトを作成しました。興味のある人の結果は次のとおりです!github.com/Wirehive/haproxy-remote
SimonJGreen

@alexandermensaは手の込んだ世話をしますか?
エドゥアルドベゼラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.