1。 当我尝试使用以下方式运行我的应用时:
# ./rebar clean compile generate
# rel/master/bin/master console
我收到以下错误:
application: app_name
exited:{shutdown,{app_name}, start, [normal, []]}}
type:permanent
{"kernel pid terminated", application_controler, "{application_start_failure,app_name
..........
所以我无法启动我的申请。
2。 而且,在建立释放之后
# rel.... start
# rel.... stop
会导致错误:“节点master@127.0.0.1没有响应ping”
虽然
# rel.... stop <- the same error as above
# rel.... start
# rel.... stop <- is fine (outputs "ok")
应用结构:
deps ebin rebar rebar.config src rel
rebar.config
{erl_first_files, []}.
{cover_enabled, true}.
{erl_opts, [debug_info]}.
{sub_dirs, ["rel"]}.
{deps_dir, ["deps]}.
{deps, [some_stable_modules_from_github]}.
reltool.config(来自rel
文件夹)
{sys, [
{lib_dirs, ["../..", "../deps"]},
{rel, "master", "1",
[app_name,
kernel,
stdlib,
stdlib,
sasl,
some_stable_modules]},
{rel, "start_clean", "", [kernel, stdlib]},
{boot_rel, "master"},
{profile, embedded},
{excl_sys_filters, ["^bin/.*", "^erts.*/bin/{dialyzer|typer)"])},
{app, sasl, ["incl_cond", include]},
{app, hipe, ["incl_cond", exclude]},
{app, some_stable_module, ["incl_cond", include]},
{app, master, ["incl_cond", include]}
]}.
{target_dir, "master"}.
{overlay, [
{mkdir, "log/sasl"},
{copy, "files/erl", "\{\{erts_vsn\}\}/bin/erl"},
{copy, "files/nodetool", "\{\{erts_vsn\}\}/bin/nodetool"},
{copy, "files/master", "bin/master"},
{copy, "files/app.config", "etc/app.config"},
{copy, "files/vm.args", "etc/vm.args"}
]}.
两个问题:
为什么我可以使用rel/master/bin/master console
启动我的应用程序?
为什么我收到“节点没有响应ping”错误?
谢谢!
PS。通常,它是使用钢筋创建的基本应用程序。我刚刚添加了几个模块来处理mongodb。
答案 0 :(得分:1)
从您的reltool.config看,app_name应用程序似乎未包含在发行版中。请确保:
{app, app_name, ["incl_cond", include]},
在那里。如果这没有帮助,请尝试手动启动您的应用程序。例如:
erl -pa ebin deps/whatever/ebin ...
> application:start(app_name).
这应该会给你一些关于发布中错误/缺失的提示。
更新:如果您无法手动启动应用程序,请尝试调试它。假设您在应用程序模块中启动了根管理程序,如果您手动启动管理程序会发生什么?你能发布你的.app / .app.src文件吗?应用程序模块的启动功能?您的主管最终的start_link函数?
PS:你的reltool.config中有两个“stdlib”条目