【问题标题】:Specifying app startup order with erlang.mk使用 erlang.mk 指定应用程序启动顺序
【发布时间】:2016-03-22 21:52:21
【问题描述】:

我正试图从一个过时的无人维护的构建工具转换为 erlang.mk。我有一个使用 erlang.mk 创建的版本,但它在启动时失败,我相信是因为应用程序以错误的顺序启动。如何指定应用程序的启动顺序?我原以为它会按照 Makefile 的 LOCAL_DEPS 变量中指定的顺序启动应用程序,但这似乎没有发生。我在文档中尽我所能查看了所有内容,并在 Google 上进行了搜索,但找不到任何东西。

【问题讨论】:

    标签: erlang build-tools


    【解决方案1】:

    顺序不取决于erlang.mk,而是取决于启动应用程序时的 Erlang VM 本身。当systools 正在启动一个特定的应用程序时,它会读取.app 文件以检查应该预先启动哪个应用程序并启动它们。只有当所有必备应用程序都已成功启动时,才会启动请求的应用程序。请参阅description of the app 文件。

    Example from here:

    {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, []}}
     ]}.
    

    这表示必须先启动kernelstdlibsasllager,然后才能启动humbundee

    【讨论】:

      【解决方案2】:

      它基于.app 文件applications 列表。每个应用程序及其依赖项都会在继续下一个应用程序之前启动。

      【讨论】:

      • 你能从源代码中展示它吗?源代码可以说明一切。
      • erlang.mk 不会以任何特定顺序在 .app 文件中创建应用程序?我必须进去手动编辑这个文件吗?
      猜你喜欢
      • 1970-01-01
      • 2020-10-15
      • 2021-05-16
      • 1970-01-01
      • 2015-09-18
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      相关资源
      最近更新 更多