我正在尝试从过时的、未维护的构建工具转换为 Erlang.mk。我有一个使用 [Erlang.mk][1] 创建的版本,但启动时失败,我相信是因为应用程序启动顺序错误。
如何指定应用程序的启动顺序?
我本以为它会按照 Makefile 的 LOCAL_DEPS
变量中指定的顺序启动应用程序,但这似乎并没有发生。我已经在文档中查找了所有可以找到的地方,还用谷歌搜索,但没有找到任何东西。
最佳答案
顺序不取决于erlang.mk
,而是取决于启动应用程序时的 Erlang VM 本身。当 systools
在启动特定应用程序时,它会读取 .app
文件来检查应该预先启动哪个应用程序并启动它们。仅当所有必备应用程序均已成功启动时,才会启动所请求的应用程序。请参阅description of the app文件。
{application, humbundee,
[{description, "Humble Bundle downloader written in Erlang"},
{vsn, "0.0.1"},
{modules,
[
=MODULES=
]},
{registered, [hbd_sup, hbd_get_sup]},
{applications, [kernel, stdlib, sasl, lager]},
{mod, {hbd_app, []}}
]}.
这表示 kernel
、stdlib
、sasl
和 lager
必须在 humbundee 之前启动
可以启动。
关于erlang - 使用 erlang.mk 指定应用程序启动顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36165942/