Erlang 21

slave




erlang

slave

मॉड्यूल

दास

मॉड्यूल सारांश

दास नोड्स को शुरू करने और नियंत्रित करने के लिए कार्य।

विवरण

यह मॉड्यूल Erlang दास नोड्स शुरू करने के लिए कार्य प्रदान करता है। मास्टर द्वारा शुरू किए गए सभी दास नोड्स मास्टर समाप्त होने पर स्वचालित रूप से समाप्त हो जाते हैं। दास पर उत्पादित सभी टर्मिनल आउटपुट को मास्टर नोड में वापस भेज दिया जाता है। फ़ाइल I / O मास्टर के माध्यम से किया जाता है।

वर्तमान होस्ट की तुलना में अन्य होस्ट पर दास नोड्स rsh प्रोग्राम के साथ शुरू किए जाते हैं। उपयोगकर्ता को पासवर्ड के लिए संकेत दिए बिना दूरस्थ होस्ट को rsh करने की अनुमति दी जानी चाहिए। इसे कई तरीकों से व्यवस्थित किया जा सकता है (विवरण के लिए, rsh प्रलेखन देखें)। एक गुलाम नोड एक ही मेजबान पर शुरू हुआ, क्योंकि मास्टर को वर्तमान निर्देशिका और पर्यावरण चर जैसे मास्टर से कुछ पर्यावरण मूल्य प्राप्त होते हैं। पर्यावरण के बारे में क्या माना जा सकता है जब एक दास दूसरे मेजबान पर शुरू होता है, तो rsh प्रोग्राम के लिए प्रलेखन देखें।

rsh प्रोग्राम का विकल्प निम्नानुसार कमांड लाइन पर erl(1) लिए निर्दिष्ट किया जा सकता है:

-rsh Program

दास नोड को मास्टर में एक ही फाइल सिस्टम का उपयोग करना है। कम से कम, Erlang / OTP दोनों कंप्यूटरों पर एक ही स्थान पर स्थापित किया जाना है और Erlang के एक ही संस्करण का उपयोग किया जाना है।

विंडोज पर चलने वाला नोड केवल उस होस्ट पर दास नोड शुरू कर सकता है जिस पर वह चल रहा है।

मास्टर नोड जीवित होना चाहिए।

निर्यात

छद्म ([मास्टर | सर्वरलिस्ट]) -> ठीक है

प्रकार

कॉल pseudo(Master, ServerList) । यदि आप कमांड लाइन से एक नोड शुरू करना चाहते हैं और कई छद्म सर्वर सेट करना चाहते हैं, तो एक एरलांग रनटाइम सिस्टम निम्नानुसार शुरू किया जा सकता है:

% erl -name abc -s slave pseudo [email protected] x --
छद्म (मास्टर, सर्वरलिस्ट) -> ठीक है

प्रकार

कई छद्म सर्वर शुरू करता है। एक छद्म सर्वर एक पंजीकृत नाम वाला एक सर्वर है जो मास्टर नोड पर निष्पादित होने वाले वास्तविक सर्वर के सभी संदेश पर कुछ भी नहीं करता है। एक छद्म सर्वर एक मध्यस्थ है जो केवल वास्तविक सर्वर के समान पंजीकृत नाम है।

उदाहरण के लिए, यदि आपने एक दास नोड N शुरू किया है और इस नोड पर pxw ग्राफिक्स कोड निष्पादित करना चाहते हैं, तो आप दास नोड पर एक pseudo सर्वर के रूप में सर्वर pxw_server शुरू कर सकते हैं। इसका वर्णन इस प्रकार है:

rpc:call(N, slave, pseudo, [node(), [pxw_server]]).
रिले (पिड) -> no_return ()

प्रकार

एक छद्म सर्वर चलाता है। यह फ़ंक्शन कभी भी कोई मूल्य नहीं देता है और फ़ंक्शन को निष्पादित करने वाली प्रक्रिया संदेश प्राप्त करती है। प्राप्त सभी संदेश बस Pid पर पारित किए जाते हैं।

start (host) -> {ठीक है, नोड} | {त्रुटि, कारण}
start (होस्ट, नाम) -> {ठीक है, नोड} | {त्रुटि, कारण}
start (होस्ट, नाम, आर्ग्स) -> {ठीक है, नोड} | {त्रुटि, कारण}

प्रकार

होस्ट Host पर एक दास नोड शुरू करता है। जरूरी नहीं कि मेजबान नामों को पूरी तरह से योग्य नामों के रूप में निर्दिष्ट किया जाए; संक्षिप्त नामों का भी उपयोग किया जा सकता है। यह वही स्थिति है जो वितरित एर्लांग नोड्स के नामों पर लागू होती है।

शुरू नोड का [email protected] । यदि कोई नाम नहीं दिया गया है, तो नाम उसी नोड के रूप में हो जाता है जो कॉल निष्पादित करता है (नोड नाम के होस्ट नाम भाग को छोड़कर)।

दास नोड अपनी user प्रक्रिया को रीसेट करता है ताकि दास पर उत्पन्न होने वाला सभी टर्मिनल I / O स्वचालित रूप से मास्टर को रिले कर दिया जाए। इसके अलावा, फ़ाइल प्रक्रिया मास्टर से संबंधित है।

Argument Args का उपयोग erl कमांड-लाइन तर्कों को सेट करने के लिए किया जाता है। यदि प्रदान किया जाता है, तो इसे नए नोड को दिया जाता है और इसका उपयोग विभिन्न उद्देश्यों के लिए किया जा सकता है; erl(1)

एक उदाहरण के रूप में, मान लीजिए कि आप होस्ट H पर नोड नाम [email protected] साथ एक दास नोड शुरू करना चाहते हैं और दास नोड को निम्नलिखित गुण रखना चाहते हैं:

  • डायरेक्टरी Dir को कोड पाथ में जोड़ा जाना है।
  • Mnesia निर्देशिका को M सेट किया जाना है।
  • यूनिक्स DISPLAY पर्यावरण चर को मास्टर नोड के प्रदर्शन के लिए सेट किया जाना है।

इसे प्राप्त करने के लिए निम्नलिखित कोड निष्पादित किया गया है:

E = " -env DISPLAY " ++ net_adm:localhost() ++ ":0 ",
Arg = "-mnesia_dir " ++ M ++ " -pa " ++ Dir ++ E,
slave:start(H, Name, Arg).

फ़ंक्शन {ok, Node} लौटाता है, जहाँ Node नए नोड का नाम है, अन्यथा {error, Reason} , जहाँ Reason इनमें से एक हो सकता है:

timeout

मास्टर नोड दास नोड के संपर्क में आने में विफल रहा। यह कई परिस्थितियों में हो सकता है:

  • दूरस्थ होस्ट पर Erlang / OTP स्थापित नहीं है।
  • अन्य होस्ट पर फ़ाइल सिस्टम में मास्टर के लिए एक अलग संरचना है।
  • Erlang नोड्स में विभिन्न कुकीज़ हैं।
no_rsh

कंप्यूटर पर कोई rsh प्रोग्राम नहीं है।

{already_running, Node}

[email protected] साथ एक नोड पहले से मौजूद है।

start_link (होस्ट) -> {ठीक है, नोड} | {त्रुटि, कारण}

प्रकार

दास नोड को start/1,2,3 रूप में उसी तरह से start/1,2,3 करता है, सिवाय इसके कि दास नोड वर्तमान में निष्पादित प्रक्रिया से जुड़ा हुआ है। यदि वह प्रक्रिया समाप्त हो जाती है, तो दास नोड भी समाप्त हो जाता है।

तर्कों और वापसी मूल्यों के विवरण के लिए, start/1,2,3 देखें।

रोक (नोड) -> ठीक है

प्रकार

स्टॉप (मारता है) एक नोड।