2013-04-30 4 views
7

У меня есть приложение erlang, скомпилированное с арматурой.Запустить приложение erlang из командной строки

Обычно я начинаю его так:

application:start(myapp). 

изнутри Эрл оболочки.

Может ли кто-нибудь сказать мне, как запустить его, как обычная программа командной строки?

+2

Некоторые из ответов на [этот вопрос] (http://stackoverflow.com/q/ 7032665/113848). – legoscia

ответ

14

Вы можете сделать:

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

Если вы хотите, чтобы работать в фоновом режиме, добавьте -noshell -detached

+0

В моих кодах у меня есть «приложение: get_env()» в функции запуска, и я получил ошибку {badmatch, undefined}, возвращенную с помощью -eval "application: start (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

{"init завершение в do_boot", {undef, [{cc, start, [], []}, {init, start_it, 1, []}, {init, start_em, 1, []}]}} – LtWorf

+1

для 'erl -s myapp' для работы вам нужно написать функцию в myapp.erl как параметр start() -> application: start (myapp).' -s - вызвать MFA. По умолчанию он вызывает старт без передачи параметров, если указано только имя модуля. – Vinod

Смежные вопросы