Erlang 21

epmd




erlang

epmd

आदेश

EPMD

कमांड सारांश

एरलंग पोर्ट मैपर डेमन

विवरण

epmd [-d|-debug] [DbgExtra...] [-address Addresses] [-port No] [-daemon] [-relaxed_command_check]

पोर्ट मैपर डेमॉन शुरू करता है।

epmd [-d|-debug] [-port No] [-names|-kill|-stop Name]

रनिंग पोर्ट मैपर डेमॉन के साथ संचार करता है।

यह डेमॉन वितरित एर्लांग संगणनाओं में शामिल सभी मेजबानों पर एक नाम सर्वर के रूप में कार्य करता है। जब एक एरलैंग नोड शुरू होता है, तो नोड का एक नाम होता है और यह होस्ट ओएस कर्नेल से एक पता प्राप्त करता है। नाम और पता स्थानीय होस्ट पर चल रहे epmd डेमन को भेजा जाता है। एक टीसीपी / आईपी वातावरण में, पते में आईपी पता और एक पोर्ट नंबर होता है। नोड नाम [email protected] के रूप में एक परमाणु है। epmd डेमॉन का काम है कि किस नोड का नाम किस पते पर सुने। इसलिए, मशीन के पते के लिए प्रतीकात्मक नोड नामों के epmd नक्शे।

टीसीपी / आईपी epmd डेमॉन केवल epmd नोड नाम के Name (प्रथम) भाग का ट्रैक रखता है। Host भाग (जो कुछ भी @ बाद है) नोड नाम में निहित है जहां epmd डेमन से संपर्क किया गया था, जैसा कि आईपी पता है जहां epmd नोड तक पहुंचा जा सकता है। इसलिए सही ढंग से काम करने के लिए टीसीएल नामकरण सेवाओं को लगातार और सही नामकरण की आवश्यकता होती है।

पोर्ट मैपर डेमन शुरू करना

डेमॉन स्वचालित रूप से कमांड erl(1) द्वारा शुरू किया जाता है यदि नोड वितरित किया जाना है और कोई चल उदाहरण मौजूद नहीं है। यदि स्वचालित रूप से लॉन्च किए गए पर्यावरण चर का उपयोग डेमन के व्यवहार को बदलने के लिए किया जाना चाहिए; अनुभाग Environment Variables देखें।

यदि तर्क- -daemon को निर्दिष्ट नहीं किया जाता है, तो epmd एक सामान्य कार्यक्रम के रूप में चलता है जिसमें शेल के नियंत्रण टर्मिनल के साथ शुरू होता है। आम तौर पर, यह एक डेमन के रूप में चलाया जाना है।

नियमित स्टार्टअप विकल्प अनुभाग में वर्णित हैं Regular Options

DbgExtra विकल्प अनुभाग DbgExtra Options में वर्णित हैं।

रनिंग पोर्ट मैपर डेमन के साथ संचार

epmd प्रोग्राम द्वारा रनिंग epmd डेमन के साथ संचार मुख्य रूप से डीबगिंग उद्देश्यों के लिए किया जाता है।

अलग-अलग प्रश्नों को अनुभाग Interactive options में वर्णित किया गया है।

नियमित विकल्प

नाम सर्वर शुरू करते समय ये विकल्प उपलब्ध हैं। नाम सर्वर आमतौर पर स्वचालित रूप से कमांड erl(1) (यदि पहले से उपलब्ध नहीं है erl(1) द्वारा शुरू किया गया है, लेकिन इसे सिस्टम स्टार्टअप पर भी शुरू किया जा सकता है।

-address List

epmd इस उदाहरण को केवल आईपी पते की अल्पविराम से अलग सूची और लूपबैक पते पर सुनें (जो कि निर्दिष्ट नहीं किया गया है तो सूची में जोड़ा गया है)। यह पर्यावरण चर ERL_EPMD_ADDRESS का उपयोग करके भी सेट किया जा सकता है; अनुभाग Environment Variables देखें।

-port No

epmd इस उदाहरण को डिफ़ॉल्ट 4369 की तुलना में दूसरे टीसीपी पोर्ट को सुनो। यह पर्यावरण चर ERL_EPMD_PORT का उपयोग करके भी सेट किया जा सकता है; अनुभाग Environment Variables देखें।

-d | -debug

डीबग आउटपुट सक्षम करता है। और -d ध्वज निर्दिष्ट, अधिक डिबग आउटपुट आपको (एक निश्चित सीमा तक) मिलेगा। यह विकल्प सबसे उपयोगी है जब epmd डेमन को डेमॉन के रूप में शुरू नहीं किया जाता है।

-daemon

epmd टर्मिनल से अलग किया गया epmd शुरू होता है। जब उपलब्ध और सही तरीके से कॉन्फ़िगर किया गया हो तो लॉगिंग syslog में समाप्त होती है। अगर बूट पर epmd डेमॉन शुरू किया गया है, तो यह विकल्प निश्चित रूप से उपयोग किया जाना है। इसका उपयोग तब भी किया जाता है जब कमांड erl स्वचालित रूप से epmd शुरू epmd

-relaxed_command_check

आराम कार्यक्रम की जाँच (ज्यादातर पिछड़े संगतता के लिए) के साथ epmd कार्यक्रम शुरू करता है। यह निम्नलिखित को प्रभावित करता है:

  • आराम से आदेश की जाँच के साथ, epmd डेमॉन को स्थानीय होस्ट से मारा जा सकता है, उदाहरण के लिए, कमांड epmd -kill भले ही सक्रिय नोड पंजीकृत हो। आमतौर पर केवल खाली नोड डेटाबेस वाले डेमॉन को epmd -kill साथ मारा जा सकता है।

  • कमांड epmd -stop (और epmd -stop लिए संबंधित संदेश, जैसा कि erl_interface:ei(3) का उपयोग करके निर्दिष्ट किया जा सकता है erl_interface:ei(3) ) आमतौर पर हमेशा अनदेखा किया जाता है। यह इसलिए क्योंकि यह एक अजीब स्थिति पैदा कर सकता है जहां एक ही नाम के दो नोड एक ही समय में जीवित हो सकते हैं। एक नोड केवल epmd से कनेक्शन को बंद करके खुद को epmd , यही वजह है कि कमांड stop केवल डीबगिंग स्थितियों में उपयोग के लिए था।

    रिलैक्स कमांड चेकिंग सक्षम होने के साथ, आप जबरन अनलोड को लाइव नोड कर सकते हैं।

ERL_EPMD_RELAXED_COMMAND_CHECK शुरू करने से पहले पर्यावरण चर ERL_EPMD_RELAXED_COMMAND_CHECK सेट करके आराम से कमांड चेकिंग को भी सक्षम किया जा सकता है।

बहुत सीमित इंटरैक्टिव उपयोग के साथ सिस्टम पर केवल आराम से कमांड चेकिंग का उपयोग करें।

DbgExtra विकल्प

ध्यान दें

ये विकल्प केवल डीबगिंग और परीक्षण epmd ग्राहकों के लिए हैं। उन्हें सामान्य ऑपरेशन में इस्तेमाल नहीं किया जाना है।

-packet_timeout Seconds

सेकंड की संख्या सेट करता है एक कनेक्शन epmd बार से पहले निष्क्रिय हो सकता है और कनेक्शन बंद कर देता है। 60 की कमी।

-delay_accept Seconds

व्यस्त सर्वर का अनुकरण करने के लिए, आप जब epmd को सूचित किया जाता है कि एक नए कनेक्शन का अनुरोध किया जाता है और जब कनेक्शन स्वीकृत हो जाता है, तो आप देरी कर सकते हैं।

-delay_write Seconds

एक व्यस्त सर्वर का अनुकरण भी। उत्तर भेजे जाने से पहले देरी हो जाती है।

इंटरएक्टिव विकल्प

ये विकल्प epmd को एक इंटरैक्टिव कमांड के रूप में बनाते हैं, पहले से चल रहे epmd प्रश्नों को भेजने का परिणाम प्रदर्शित करते हैं। संपर्क किया गया epmd हमेशा स्थानीय नोड पर होता है, लेकिन विकल्प -port का उपयोग ऐसे उदाहरणों के बीच चयन करने के लिए किया जा सकता है, यदि कई होस्ट पर विभिन्न बंदरगाहों का उपयोग करके चल रहे हैं।

-port No

निर्दिष्ट टीसीपी पोर्ट नंबर (डिफ़ॉल्ट 4369) पर सुन रहे epmd को epmd । यह पर्यावरण चर ERL_EPMD_PORT का उपयोग करके भी सेट किया जा सकता है; अनुभाग Environment Variables देखें।

-names

वर्तमान में चल रहे epmd साथ पंजीकृत नामों की सूची।

-kill

वर्तमान में चल रहे epmd मारता है।

रनिंग epmd को मारने की अनुमति केवल तभी दी जाती है जब epmd -names एक खाली डेटाबेस दिखाता है या अगर -relaxed_command_check निर्दिष्ट किया गया था जब -relaxed_command_check का रनिंग इंस्टेंस शुरू किया गया था।

ध्यान दें कि -relaxed_command_check डेमन को शुरू करते समय निर्दिष्ट किया जाता है जो कि हत्या को स्वीकार करना है जब यह जीवित नोड पंजीकृत है। जब इंटरैक्टिव रूप से epmd चल रहा हो, तो -relaxed_command_check का कोई प्रभाव नहीं होता है। एक डेमॉन जो बिना रिलैक्स कमांड चेकिंग के शुरू किया गया हो, उदाहरण के लिए, सिग्नल या किसी अन्य ओएस-विशिष्ट विधि का उपयोग करके इसे मार दिया जाना चाहिए, यदि इसमें सक्रिय क्लाइंट पंजीकृत हैं।

-stop Name

epmd डेटाबेस से एक जीवित नोड को जबरन epmd है।

इस कमांड का उपयोग केवल तभी किया जा सकता है जब epmd इंस्टेंस से संपर्क करने की शुरुआत फ्लैग -relaxed_command_check

ध्यान दें कि epmd कमांड चेकिंग को epmd डेमॉन से संपर्क करने में सक्षम होना चाहिए। जब इंटरैक्टिव रूप से epmd चल रहा हो, तो -relaxed_command_check का कोई प्रभाव नहीं होता है।

पर्यावरण चर

ERL_EPMD_ADDRESS

IP पते की अल्पविराम से अलग की गई सूची पर सेट किया जा सकता है, उस स्थिति में epmd डेमन केवल निर्दिष्ट पते (तों) और लूपबैक पते पर ही सुनेगा (जो कि निर्दिष्ट नहीं किया गया है तो सूची में जोड़ा गया है)। डिफ़ॉल्ट व्यवहार सभी उपलब्ध आईपी पते पर सुनना है।

ERL_EPMD_PORT

पोर्ट नंबर epmd उपयोग कर सकते हैं शामिल कर सकते हैं। अधिकांश मामलों में डिफ़ॉल्ट पोर्ट ठीक काम करेगा। एक ही मेजबान पर सह-अस्तित्व के लिए नोड्स के स्वतंत्र समूहों का प्रतिनिधित्व करते epmd , epmd कई उदाहरणों की अनुमति देने के लिए एक अलग पोर्ट निर्दिष्ट किया जा सकता है। एक क्लस्टर में सभी नोड्स को समान epmd पोर्ट संख्या का उपयोग करना चाहिए।

ERL_EPMD_RELAXED_COMMAND_CHECK

यदि प्रारंभ से पहले सेट किया जाता है, तो epmd डेमन ऐसा व्यवहार करता है मानो विकल्प -relaxed_command_check स्टार्टअप पर निर्दिष्ट किया गया था। नतीजतन, यदि यह विकल्प Erlang वर्चुअल मशीन को शुरू करने से पहले सेट किया गया है, तो स्वचालित रूप से शुरू किया गया -kill बिना प्रतिबंध के -kill और -kill कमांड स्वीकार करता है।

लॉगिंग

कुछ ऑपरेटिंग सिस्टम पर syslog त्रुटि रिपोर्टिंग के लिए उपयोग किया जाएगा जब एक डीमन के रूप में epmd चलता है। त्रुटि लॉगिंग को सक्षम करने के लिए, आपको /etc/syslog.conf फ़ाइल को संपादित करना होगा और एक प्रविष्टि जोड़ना होगा:

!epmd
*.*<TABs>/var/log/epmd.log

जहाँ <TABs> कम से कम एक वास्तविक टैब वर्ण हैं। रिक्त स्थान को चुपचाप अनदेखा कर दिया जाता है।

पहुँच प्रतिबंध

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

निम्नलिखित प्रश्नों को दूरस्थ नोड्स से स्वीकार किया जाता है:

  • पोर्ट क्वेरीज़, यानी, जिस पर एक निर्दिष्ट नाम के साथ नोड को पोर्ट करता है

  • नाम सूचीकरण, अर्थात्, होस्ट पर पंजीकृत सभी नामों की एक सूची देता है

आगे पहुंच को प्रतिबंधित करने के लिए, फ़ायरवॉल सॉफ़्टवेयर का उपयोग किया जाना चाहिए।