1

Rebar を使用して OTP アプリケーションのスケルトンを作成しました。

$ rebar create-app appid=test

次に、でコンパイルしrebar compile、実行すると

$ erl -pa ebin -s test

このエラーが発生します

{"init terminating in do_boot",{undef,[{test,start,[],[]},{init,start_it,1,[]},{init,start_em,1,[]}]}}

startしかし、シェルから呼び出すと動作します:

$ erl -pa ebin

Erlang R15B01 (erts-5.9.1) [source] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.9.1  (abort with ^G)
1> application:start(test).
ok

OS コマンドラインからアプリケーションを起動するにはどうすればよいですか?

編集:

私は実行する必要があると考えました

$ erl -pa ebin -s application start test

今はエラーは発生していませんが、アプリはまだ開始されていません...

4

2 に答える 2

2

-sフラグは、1 つ以上の引数が提示された場合、引数のリストを想定します。したがって、期待どおりに機能しない$ erl -pa ebin -s application start test呼び出しが行わapplication:start([test])れます。

回避策は次のとおりです (最善の解決策ではない可能性があります)。

src/test_init.erl次の内容でソース ファイルを作成します。

-module(test_init).

-compile(export_all).

init() ->
    application:start(test).

それで:

$ rebar compile
$ erl -pa ebin -s test_init init

これで、testアプリケーションが実行されているはずです:)

于 2013-09-15T09:10:54.297 に答える