コマンドラインからアプリケーションを起動しようとしています。アプリケーションは基本的にOTP準拠のTCPサーバーであり、シェルから起動するとうまく動作します。しかし、コマンドラインから起動すると実際には起動しません。コマンドラインからerlangアプリケーションを起動する際の問題
すべてのファイルは、対応するフォルダ構造にあります。つまり、ソースは\ srcとバイナリ\ ebinにあります。私は
code:add_patha("./ebin").
と.erlangファイルのパスを設定しており、呼び出される関数はまた、私は(重複)を加えた
-module(wotsuke_geolocation_lookup_server).
-behaviour(application).
-export([start/0, start/2, stop/1]).
start() ->
event_dbs:start(),
wotsuke_server_sup:start_link().
start(_Type, _Args) ->
event_dbs:start(),
wotsuke_server_sup:start_link().
stop(_State) ->
ok.
このモジュールでスタート/ 0(iは使用されargsを必要とする将来の機能のためにstart/2)。私が実行したとき は今:
erl -run wotsuke_geolocation_lookup_server start [] []
私はそれがモジュール/機能を見つけることができない意味
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]
{"init terminating in do_boot",{undef,[{wotsuke_geolocation_lookup_server,start,[["[]","[]"]],[]},{init,start_it,1,[]},{init,start_em,1,[]}]}}
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot()
を取得します。
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V7.0 (abort with ^G)
1>
基本的には何も開始されていない(プロセスIDが返されない):したがって、私は冗長スタート/ 0
erl -run wotsuke_geolocation_lookup_server start
を使用して取得します。私はサーバーに接続しようとし、サーバーがオフのときに典型的な回答を得ました。私はまた、-paオプションでebinフォルダに強制的にerlを試みました。同上。
私がコマンドラインからerlangアプリケーションを実行しようとしているのは初めてです(それをデモ化するために)、私は無知なままです。
ありがとうございました。
が追加さ:わからない、それは私は同様のerlangアプリのコードを追加し、助け
{application, wotsuke_geolocation_lookup_server,
[{description, "Wotsuke Geolocation lookup server"},
{vsn, "0.1.0"},
{modules, [tcpserver_otp_backend, ets_methods, data_packing, data_formats, event_timings, logger, event_dbs,
obsolete_data_clean_ad, obsolete_data_clean, wotsuke_data_input, wotsuke_logger, wotsuke_server_sup, data_retrieve, wotsuke_data_output, user_event_dbs,
event_areas]},
{registered, [wotsuke_data_input, wotsuke_server_sup, wotsuke_logger, wotsuke_data_output]},
{applications, [kernel, stdlib, mnesia]},
{env, []},
{mod, {bsc, []}}]}.
UPDATE:一つの問題が解決されます。コマンド
erl -run wotsuke_geolocation_lookup_server start [] []
の問題は、ERLがいずれかのスタート/ 0が唯一のモジュールは、指定または関数も指定されている場合アリティ1されている期待しているという事実トン実際に起因しています。 [] []を[[]、[]]と見なす。
を実行しています{init "、" start_em "、" start "、" start "、" start "、" start "、" start "、" start "、" start " ] []]}} 'は、1つの引数であることを意味します。 – ernstroux