2011-02-04 13 views
5

से स्थानीय एरलंग नोड को सूचित करने का सबसे आसान तरीका मैं एक नोड प्रति मशीन के साथ एक वितरित एरलांग सिस्टम चला रहा हूं।एक शेल कमांड

चूंकि DNS उपलब्ध नहीं है, इसलिए मैं उन्हें उसी -sname परम के साथ शुरू करता हूं।

erl -sname foo ... 

एक ऑपरेटिंग सिस्टम डेमॉन आदेशों जब कोई खास घटना होती है (जब एक यूएसबी स्टिक प्रणाली में pugged है) खोल निष्पादित करने के लिए सुविधा (/bin/sh) है।

मैं erlang नोड पर एक समारोह इस शेल कमांड (आगे की कार्रवाई लेने के बाद यूएसबी स्टिक का पता चला और घुड़सवार गया था) के साथ इस मशीन पर स्थानीय कॉल करने के लिए एक आसान तरीका के लिए देख रहा हूँ।

मैं खोल से erl -sname bar बुलाने की सोच रहा था और कुछ कोड ऐसे ही

[_,Host] = string:tokens(atom_to_list(node()), "@"), 
The_node = list_to_atom("[email protected]" ++ Host), 
spawn(The_node, My_fun), 

लग रहा है इस जाने का रास्ता है चलाने के? या एक नया नया एरलांग नोड ओवरकिल शुरू कर रहा है (हालांकि यह अक्सर नहीं करेगा)

या gen_tcp द्वारा खोले गए सॉकेट से बात करना बेहतर है, या नामित पाइप पढ़ें।

या कोई अन्य सुझाव?

बीटीडब्ल्यू यह यूनिक्स सिस्टम पर चल रहा है।

+0

erlang है और इसका एक चतुर उपयोग के लिए +1। – gahooa

उत्तर

9

आप उपयोग करना चाहते हैं क्या वास्तव में erl_call, आप वर्तमान में वितरित नोड्स संपर्क करें और मनमाने ढंग से कोड चलाने देता है कि एक आवेदन पत्र है।

erl_call एक वितरित एरलांग नोड के साथ शुरू करना और/या संवाद करना संभव बनाता है। यह erl_interface लाइब्रेरी पर एक उदाहरण अनुप्रयोग के रूप में बनाया गया है। इसका उद्देश्य एक वितरित एरलांग नोड के साथ बातचीत करने के लिए यूनिक्स शैल स्क्रिप्ट का उपयोग करना है।

आप या तो इसे आदेश देने के लिए आदेश, एक एस्क्रिप्ट या बहुत अधिक कोड दे सकते हैं और यह ऐसा करेगा। आपके documentation में आपके पास अधिक जानकारी और वास्तविक उदाहरण है।

+0

बढ़िया, ठीक वही जो मैं खोज रहा था! तुमने मेरा दिन बनाया, धन्यवाद! –

+0

एएके, मैं 4 घंटे बहुत देर हो गई! हस्ताक्षर: समुद्री डाकू। –

संबंधित मुद्दे