संग्रह फ़ाइलों से कोड लोड करने का समर्थन प्रयोगात्मक है।
तैयार होने से पहले इसे जारी करने का एकमात्र उद्देश्य प्रारंभिक प्रतिक्रिया प्राप्त करना है।
फ़ाइल स्वरूप, शब्दार्थ, इंटरफ़ेस, और इसी तरह, भविष्य के रिलीज़ में बदला जा सकता है।
-code_path_choice
ध्वज भी प्रयोगात्मक है।
Erlang 21
init

init
मॉड्यूल
इस में
मॉड्यूल सारांश
सिस्टम स्टार्टअप का समन्वय।
विवरण
यह मॉड्यूल प्रीलोडेड है और इसमें
init
सिस्टम प्रक्रिया के लिए कोड है जो सिस्टम के स्टार्टअप को समन्वित करता है।
स्टार्टअप पर मूल्यांकन किया गया पहला फ़ंक्शन
boot(BootArgs)
, जहां
BootArgs
स्थानीय ऑपरेटिंग सिस्टम से Erlang रनटाइम सिस्टम को दिए गए कमांड-लाइन तर्कों की एक सूची है;
erl(1)
।
init
बूट स्क्रिप्ट पढ़ता है, जिसमें सिस्टम आरंभ करने के निर्देश हैं।
बूट स्क्रिप्ट के बारे में अधिक जानकारी के लिए,
script(4)
।
init
में सिस्टम को पुनरारंभ करने, रिबूट करने और रोकने के लिए कार्य शामिल हैं।
निर्यात
प्रकार
Erlang रनटाइम सिस्टम शुरू करता है। इस फ़ंक्शन को कहा जाता है जब एमुलेटर शुरू किया जाता है और सिस्टम स्टार्टअप का समन्वय करता है।
BootArgs
एमुलेटर झंडे, यानी झंडे और सादे तर्कों को छोड़कर सभी कमांड लाइन तर्क हैं;
erl(1)
।
init
कुछ झंडे की व्याख्या करता है, नीचे अनुभाग
Command-Line Flags
देखें।
शेष झंडे ("उपयोगकर्ता के झंडे") और सादे तर्क
init
लूप में पास किए जाते हैं और क्रमशः
get_arguments/0
और
get_plain_arguments/0
कॉल करके पुनर्प्राप्त किए जा सकते हैं।
प्रकार
कमांड-लाइन उपयोगकर्ता फ़्लैग फ़्लैग से जुड़े सभी मान लौटाता है।
यदि
Flag
कई बार प्रदान किया जाता है, तो प्रत्येक
Values
संरक्षित क्रम में वापस आ जाता है।
उदाहरण:
% erl -a b c -a d ... 1> init:get_argument(a). {ok,[["b","c"],["d"]]}
निम्नलिखित झंडे स्वचालित रूप से परिभाषित किए गए हैं और इस फ़ंक्शन का उपयोग करके पुनर्प्राप्त किए जा सकते हैं:
-
root
-
Erlang / OTP की स्थापना निर्देशिका,
$ROOT
:2> init:get_argument(root). {ok,[["/usr/local/otp/releases/otp_beam_solaris8_r10b_patched"]]}
-
progname
-
कार्यक्रम का नाम जिसने एरलांग शुरू किया:
3> init:get_argument(progname). {ok,[["erl"]]}
-
home
-
होम निर्देशिका:
4> init:get_argument(home). {ok,[["/home/harry"]]}
यदि कोई मान
Flag
के साथ संबद्ध है, तो
error
देता है।
प्रकार
सभी कमांड लाइन झंडे और सिस्टम-परिभाषित झंडे
get_argument/1
,
get_argument/1
।
प्रकार
स्ट्रिंग्स (संभवतः खाली) की सूची के रूप में किसी भी सादे कमांड-लाइन तर्कों को लौटाता है।
प्रकार
init
प्रक्रिया की वर्तमान स्थिति का निरीक्षण किया जा सकता है।
सिस्टम स्टार्टअप (इनिशियलाइज़ेशन) के दौरान,
InternalStatus
starting
, और
ProvidedStatus
इंगित करता है कि बूट स्क्रिप्ट की कितनी दूर व्याख्या की गई है।
बूट लिपि में व्याख्या की गई प्रत्येक
{progress, Info}
शब्द
ProvidedStatus
प्रभावित करता है, अर्थात,
ProvidedStatus
को
Info
का मूल्य मिलता है।
सभी एप्लिकेशन को आसानी से नीचे ले जाया जाता है, सभी कोड अनलोड किए जाते हैं, और सिस्टम समाप्त होने से पहले सभी पोर्ट बंद हो जाते हैं।
यदि कमांड-लाइन फ्लैग
-heart
निर्दिष्ट किया गया था, तो
heart
प्रोग्राम सिस्टम को रिबूट करने का प्रयास करता है।
अधिक जानकारी के लिए,
heart(3)
।
शटडाउन समय को सीमित करने के लिए, समय के लिए
-shutdown_time
को एप्लिकेशन लेने में खर्च करने की अनुमति है, कमांड-लाइन फ्लैग
-shutdown_time
का उपयोग करना है।
सिस्टम को चल रहे एर्लांग नोड के
अंदर
पुनः आरंभ किया जाता है, जिसका अर्थ है कि एमुलेटर को पुनरारंभ नहीं किया गया है।
सभी अनुप्रयोगों को सुचारू रूप से नीचे ले जाया जाता है, सभी कोड अनलोड किए जाते हैं, और सिस्टम शुरू होने से पहले फिर से उसी तरह बूट होने से पहले सभी पोर्ट बंद हो जाते हैं।
वही
BootArgs
फिर से उपयोग किया जाता है।
शटडाउन समय को सीमित करने के लिए, समय के लिए
-shutdown_time
को एप्लिकेशन लेने में खर्च करने की अनुमति है, कमांड-लाइन फ्लैग
-shutdown_time
का उपयोग करना है।
प्रकार
सिस्टम को बूट करने के लिए प्रयुक्त बूट स्क्रिप्ट की पहचान हो जाती है।
Id
किसी भी Erlang शब्द की हो सकती है।
वितरित बूट स्क्रिप्ट में,
Id
{Name, Vsn}
।
Name
और
Vsn
तार हैं।
प्रकार
सभी अनुप्रयोगों को सुचारू रूप से नीचे ले जाया जाता है, सभी कोड अनलोड किए जाते हैं, और सिस्टम बंद होने से पहले सभी बंदरगाहों को बंद कर दिया जाता है।
यदि कमांड-लाइन फ़्लैग
-heart
निर्दिष्ट किया गया था, तो एर्लांग नोड समाप्त होने से पहले
heart
कार्यक्रम समाप्त हो गया है।
अधिक जानकारी के लिए,
heart(3)
।
शटडाउन समय को सीमित करने के लिए, समय के लिए
-shutdown_time
को एप्लिकेशन लेने में खर्च करने की अनुमति है, कमांड-लाइन फ्लैग
-shutdown_time
का उपयोग करना है।
कमान-लाइन झंडे
init
मॉड्यूल निम्न कमांड-लाइन झंडे की व्याख्या करता है:
-
--
-
अगले झंडे तक सब कुछ
--
सादा तर्क माना जाता है औरget_plain_arguments/0
का उपयोग करकेget_plain_arguments/0
पुनः प्राप्त किया जा सकता है। -
-code_path_choice Choice
-
strict
याrelaxed
लिए सेट किया जा सकता है। यह नियंत्रित करता है कि कोड पथ के प्रत्येक निर्देशिका की व्याख्या कैसे की जाए:-
सख्ती से जैसा कि यह
boot script
में दिखाई देता है, या -
init
अधिक आराम से होना है और एक उपयुक्त निर्देशिका खोजने का प्रयास करें यदि यह एक नियमितebin
निर्देशिका और एकebin
फ़ाइल में एकebin
निर्देशिका से चुन सकता है।
जब आप
boot script
को संपादित किए बिना अभिलेखागार से कोड लोडिंग के साथ विस्तृत करना चाहते हैं तो यह ध्वज विशेष रूप से उपयोगी है। बूट स्क्रिप्ट की व्याख्या के बारे में अधिक जानकारी के लिए,script(4)
। कोड सर्वर कैसे काम करता है इस पर ध्वज का भी एक समान प्रभाव पड़ता है;code(3)
देखेंcode(3)
। -
-
-epmd_module Module
-
नोड नामों के पंजीकरण और लुकअप के लिए मॉड्यूल का उपयोग करने के लिए निर्दिष्ट करता है।
erl_epmd
। -
-eval Expr
-
स्कैन, पर्स, और एक मनमाना अभिव्यक्ति का मूल्यांकन करता है जो सिस्टम आरंभीकरण के दौरान
Expr
हो जाता है। यदि इन चरणों में से कोई भी विफल हो जाता है (मूल्यांकन के दौरान सिंटैक्स त्रुटि, पार्स त्रुटि या अपवाद), एरलांग एक त्रुटि संदेश के साथ बंद हो जाता है। निम्नलिखित उदाहरण में एर्लैंग को हेक्साडेसिमल कैलकुलेटर के रूप में प्रयोग किया जाता है:% erl -noshell -eval 'R = 16#1F+16#A0, io:format("~.16B~n", [R])' \\ -s erlang halt BF
यदि एकाधिक
-eval
भाव अभिव्यक्त किए जाते हैं, तो उनका मूल्यांकन क्रमबद्ध रूप से किया जाता है।-eval
अभिव्यक्तियों का मूल्यांकन क्रमिक रूप से-s
और-run
फ़ंक्शन कॉल के साथ किया जाता है (यह भी निर्दिष्ट क्रम में)। के साथ-s
और-run
, एक मूल्यांकन जो सिस्टम आरंभीकरण प्रक्रिया को समाप्त नहीं करता है। -
-extra
-
निम्नलिखित सभी
-extra
को सादा तर्क माना जाता है औरget_plain_arguments/0
का उपयोग करके पुनर्प्राप्त किया जा सकता है। -
-run Mod [Func [Arg1, Arg2, ...]]
-
सिस्टम आरंभीकरण के दौरान निर्दिष्ट फ़ंक्शन कॉल का मूल्यांकन करता है।
Func
start
करने केstart
चूक। यदि कोई तर्क प्रदान नहीं किया जाता है, तो फ़ंक्शन को माना जाता है Arity 0. नहीं तो इसे Arity 1 का माना जाता है[Arg1,Arg2,...]
तर्क के रूप में सूची[Arg1,Arg2,...]
को लेते हुए। सभी तर्क तार के रूप में पारित किए जाते हैं। यदि कोई अपवाद उठाया जाता है, तो एरलैंग एक त्रुटि संदेश के साथ बंद हो जाता है।उदाहरण:
% erl -run foo -run foo bar -run foo bar baz 1 2
यह Erlang रनटाइम सिस्टम शुरू करता है और निम्नलिखित कार्यों का मूल्यांकन करता है:
foo:start() foo:bar() foo:bar(["baz", "1", "2"]).
कार्यों को एक प्रारंभिक प्रक्रिया में क्रमिक रूप से निष्पादित किया जाता है, जो तब सामान्य रूप से समाप्त हो जाता है और उपयोगकर्ता को नियंत्रण प्रदान करता है। इसका मतलब यह है कि एक
-run
कॉल जो ब्लॉक को वापस नहीं करता है आगे की प्रक्रिया; इससे बचने के लिए, ऐसे मामलों मेंspawn
कुछ प्रकार का उपयोग करें। -
-s Mod [Func [Arg1, Arg2, ...]]
-
सिस्टम आरंभीकरण के दौरान निर्दिष्ट फ़ंक्शन कॉल का मूल्यांकन करता है।
Func
start
करने केstart
चूक। यदि कोई तर्क प्रदान नहीं किया जाता है, तो फ़ंक्शन को माना जाता है Arity 0. नहीं तो इसे Arity 1 का माना जाता है[Arg1,Arg2,...]
तर्क के रूप में सूची[Arg1,Arg2,...]
को लेते हुए। सभी तर्क परमाणुओं के रूप में पारित किए जाते हैं। यदि कोई अपवाद उठाया जाता है, तो एरलैंग एक त्रुटि संदेश के साथ बंद हो जाता है।उदाहरण:
% erl -s foo -s foo bar -s foo bar baz 1 2
यह Erlang रनटाइम सिस्टम शुरू करता है और निम्नलिखित कार्यों का मूल्यांकन करता है:
foo:start() foo:bar() foo:bar([baz, '1', '2']).
कार्यों को एक प्रारंभिक प्रक्रिया में क्रमिक रूप से निष्पादित किया जाता है, जो तब सामान्य रूप से समाप्त हो जाता है और उपयोगकर्ता को नियंत्रण प्रदान करता है। इसका मतलब है कि एक एस
-s
कॉल जो ब्लॉक को वापस नहीं करता है आगे की प्रक्रिया; इससे बचने के लिए, ऐसे मामलों मेंspawn
कुछ प्रकार का उपयोग करें।परमाणुओं की सीमित लंबाई के कारण, इसके बजाय
-run
का उपयोग करने की अनुशंसा की जाती है।
उदाहरण
% erl -- a b -children thomas claire -ages 7 3 -- x y ... 1> init:get_plain_arguments(). ["a","b","x","y"] 2> init:get_argument(children). {ok,[["thomas","claire"]]} 3> init:get_argument(ages). {ok, [["7","3"]]} 4> init:get_argument(silly). error
यह भी देखें
erl_prim_loader(3)
,
heart(3)