我正在尝试将gproc作为应用程序内的依赖项启动,但它失败了:
{error,{not_started,gproc}}
这是 Rebar3 在编译时使用的 app.src 文件:
{application, myapp,
[{description, "MyApp"},
{vsn, "0.1.0"},
{registered, []},
{mod, { my_app, []}},
{applications,
[kernel,
stdlib,
sasl,
gproc <--- Dependency, and is compiled with Rebar3
]},
{env,[]},
{modules, []},
{maintainers, []},
{licenses, []},
{links, []}
]}.
从外壳开始,application:start(gproc).
然后application:start(myapp).
一切都运行良好。我不明白为什么...
也许是因为某种竞争条件?
外壳开始于:
erl -pa _build/default/lib/*/ebin -boot start_sasl -eval "application:start(myapp)"
编辑:当使用rebar3 shell
一切正常时,与我使用的 shell 命令有什么区别?