2013-04-30 16 views
7

私はrebarでコンパイルされたerlangアプリケーションを持っています。コマンドラインからerlangアプリケーションを起動する

application:start(myapp). 

ERLシェルの内側から:

通常、私はこのようにそれを起動します。

誰でも普通のコマンドラインプログラムのように起動する方法を教えてもらえますか?

+2

回答の一部を追加します(http://stackoverflow.com/q/ 7032665/113848)が役に立ちます。 – legoscia

答えて

14

あなたが行うことができます。

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

をあなたはそれがバックグラウンドで実行したい場合は、[この質問]へ-noshell -detached

+0

私のコードでは、start関数に 'application:get_env()'があり、-eval "application:start(myapp)"を使って{badmatch、undefined}エラーが返されました。 '-pa'のように含めるべき他のライブラリパスはありますか? – VincentHuang

+0

ああ、私は上記の自己質問に答えます。 'etc/app.confg'に定義されている環境変数を取得する場合は、 '-config etc/app.config'を使用して環境変数を含めることを忘れないでください。 – VincentHuang

5

、そのようなことのシェルスクリプトを作成します:あなたがhttp://www.erlang.org/doc/man/erl.htmlを参照してください必要

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

その他のオプションを。

+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を呼び出すことです。デフォルトでは、モジュール名のみが指定されている場合は、パラメータを渡すことなくstartを呼び出します。 – Vinod

関連する問題