首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行牛仔应用程序时出错

运行牛仔应用程序时出错
EN

Stack Overflow用户
提问于 2013-09-12 19:02:19
回答 1查看 1.4K关注 0票数 2

我在启动牛仔应用程序时遇到了问题,它给了我以下错误。由于某些原因,牧场没有启动,尽管我在应用程序中添加了启动牧场的代码。

我看到一辆新的战车被拖走了。但还是有麻烦。

代码语言:javascript
复制
1> application:start(satomi).
{error,
    {bad_return,
        {{satomi_app,start,[normal,[]]},
         {'EXIT',
             {noproc,
                 {gen_server,call,
                     [ranch_sup,
                      {start_child,
                          {{ranch_listener_sup,http},
                           {ranch_listener_sup,start_link,
                               [http,100,ranch_tcp,
                                [{port,9090}],
                                cowboy_protocol,
                                [{...}]]},
                           permanent,5000,supervisor,
                           [ranch_listener_sup]}},
                      infinity]}}}}}}

=INFO REPORT==== 12-Sep-2013::11:42:46 ===
    application: satomi
    exited: {bad_return,
             {{satomi_app,start,[normal,[]]},
              {'EXIT',
               {noproc,
                {gen_server,call,
                 [ranch_sup,
                  {start_child,
                   {{ranch_listener_sup,http},
                    {ranch_listener_sup,start_link,
                     [http,100,ranch_tcp,
                      [{port,9090}],
                      cowboy_protocol,
                      [{env,
                        [{dispatch,
                          [{'_',[],[{[],[],toppage_handler,[]}]}]}]}]]},
                    permanent,5000,supervisor,
                    [ranch_listener_sup]}},
                  infinity]}}}}}
    type: temporary

以下是我的app.src

代码语言:javascript
复制
>cat satomi.app.src
    {application, satomi,
     [
      {description, ""},
      {vsn, "1"},
      {registered, []},
      {applications, [
                      kernel,
                      stdlib,
        cowboy
                     ]},
      {mod, { satomi_app, []}},
      {env, []}
     ]}.
代码语言:javascript
复制
>cat satomi.erl
-module(satomi).

-export([start/0]).

start()->
    ok = application:start(crypto),
    ok = application:start(sasl),
    ok = application:start(ranch),
    ok = application:start(cowlib),
    ok = application:start(cowboy),
    ok = application:start(satomi).

我想弄清楚到底是怎么回事

有人能告诉我牛仔的工作样本,我可以用它作为模板吗?我使用钢筋来编译代码。我不认为这会有什么不同。我使用以下命令启动应用程序

erl -pa ./ebin ./deps/*/ebin

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-16 12:30:36

当从shell调用application:start(satomi)时,它不会自动启动它所依赖的应用程序,这些应用程序需要手动启动。您所拥有的satomi:start/0函数正是这样做的,因此解决方案是从shell调用satomi:start()

原因是application:start(satomi)实际上不会调用satomi:start(),当应用程序不是Erlang发行版的一部分时,它是启动应用程序及其依赖关系的一种方便方法。

更新:由于Erlang R16B02,也有刚开始。它自动启动所有依赖项。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18772341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档