2013-04-30 11 views
7

से एरलांग एप्लिकेशन शुरू करें मेरे पास एक एरलांग एप्लिकेशन है, जिसे रीबर के साथ संकलित किया गया है। erl खोल अंदर सेकमांड लाइन

application:start(myapp). 

:

आम तौर पर मैं इस तरह से यह शुरू करते हैं।

क्या कोई मुझे बता सकता है कि इसे सामान्य कमांड लाइन प्रोग्राम की तरह कैसे शुरू किया जाए?

+2

के जवाब में से कुछ [इस सवाल] (http://stackoverflow.com/q/ 7032665/113848) मदद कर सकता है। – legoscia

उत्तर

14

आप कर सकते हैं:

erl -pa ebin -eval "application:start(myapp)" 

आप इसे पृष्ठभूमि में चलाने के लिए चाहते हैं, जोड़ने -noshell -detached

+0

मेरे कोड में, मेरे पास प्रारंभिक कार्य में 'application: get_env()' है और मुझे {badmatch, अपरिभाषित} त्रुटि का उपयोग करके लौटाई गई त्रुटि "एप्लिकेशन: प्रारंभ (myapp)"। क्या कोई अन्य लाइब्रेरी पथ है जिसमें मुझे '-pa' शामिल होना चाहिए? – VincentHuang

+0

ओह, मैं उपरोक्त अपने स्वयं के प्रश्न का उत्तर देता हूं। यदि आप कुछ पर्यावरण चर प्राप्त करना चाहते हैं जो 'etc/app.confg' में परिभाषित है, तो इसे '-config etc/app.config' का उपयोग करके शामिल करना न भूलें। – VincentHuang

5

खोल स्क्रिप्ट, कुछ बनाएं उस तरह:

exec erl -pa ebin/ deps/*/ebin -s myapp 

अन्य विकल्प है जो आप http://www.erlang.org/doc/man/erl.html देखने की जरूरत है।

+0

{"do_boot में समाप्ति init", {undef, [{cc, start, [], []}, {init, start_it, 1, []}, {init, start_em, 1, []}]}} – LtWorf

+1

'erl -s myapp' के लिए काम करने के लिए आपको अपने myapp.erl में 'start() -> एप्लिकेशन: स्टार्ट (myapp) के रूप में एक फ़ंक्शन लिखना होगा।' -s विकल्प एमएफए को कॉल करना है। डिफ़ॉल्ट रूप से यह केवल मॉड्यूल नाम निर्दिष्ट होने पर पैरामीटर पास किए बिना शुरू करता है। – Vinod