सीधे टीसीपी पर एक यूनिक्स डोमेन सॉकेट को कैसे उजागर किया जाए


14

मैं एक UNIX डोमेन सॉकेट रखना चाहता / चाहती हूं, उदाहरण के लिए /var/program/program.cmd, जो कि TCP के माध्यम से उजागर किया गया है, पोर्ट 12345 पर कहता है। मैं यह भी चाहूंगा कि इसका बैकग्राउंड में पूरा समय चल रहा हो।

ऐसा करने का सबसे अच्छा तरीका क्या है? यदि इसकी प्रासंगिक प्रणाली Ubuntu 12.04.2 चल रही है।

इसके अलावा प्रस्तावित समाधान के साथ यह डोमेन सॉकेट को हटा दिया जाएगा और फिर से बनाया जाएगा?

संपादित करें

यहाँ एक init स्क्रिप्ट के रूप में स्वीकृत उत्तर का परिणाम है: https://github.com/Wirehive/haproxy-store

जवाबों:


18

आप socatअपने यूनिक्स सॉकेट को टीसीपी सॉकेट के रूप में निर्यात करने के लिए उपयोग कर सकते हैं । यहाँ ऐसा करने की आज्ञा है:

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

यह पोर्ट 12345 पर सुनने वाले टीसीपी सॉकेट का निर्माण करेगा जो आपके प्रोग्राम के उल्लेखित यूनिक्स सॉकेट से कनेक्ट होगा।

विलोपन समस्या के लिए, मैंने स्वयं इसका परीक्षण नहीं किया। आप इसे सत्यापित कर सकते हैं और हमें इसके बारे में बता सकते हैं :)

नोट: आपको सोसाइटी स्थापित नहीं मिल सकती है, आपको apt-get install socatइसे टाइप करने की आवश्यकता है: इसे स्थापित करने के लिए।


1
धन्यवाद कि बहुत काम किया, हालांकि यह प्रत्येक संचार के बाद बाहर निकल गया। खेलने के बाद चारों ओर मैं के साथ अच्छे सफलता हो रही है: socat TCP-LISTEN:12345,reuseaddr,fork,su=haproxy UNIX-CLIENT:/var/program/program.cmd। केवल सवाल यह है कि मैं इसे पृष्ठभूमि में कैसे चलाऊं?
साइमनजग्रीन

@SimonJGreen: चूंकि यह एक इंटरएक्टिव कमांड नहीं है, जिसके लिए इनपुट की आवश्यकता होती है, आप &कमांड के अंत में सिर्फ एपेडिंग की कोशिश कर सकते हैं ।
खालिद

ठीक है, मैं सुझाव के साथ भागा और इसे संभालने के लिए एक init स्क्रिप्ट लिखी। यहाँ कोई दिलचस्पी के लिए परिणाम है! github.com/Wirehive/haproxy-remote
सिमोनजग्रीन

@alexermermensa विस्तृत करने के लिए देखभाल?
एडुआर्डो बीज़र्रा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.