Erlang OTP 应用程序文件中的 "registered" 字段有什么作用?
What does the "registered" field in Erlang OTP app files do?
在 Joe Armstrong 的 Programming Erlang 一书的第 23 章中,有一个名为 sellaprime.app 的文件,其内容如下:
%% This is the application resource file (.app file) for the 'base'
%% application.
{application, sellaprime,
[{description, "The Prime Number Shop"},
{vsn, "1.0"},
{modules, [sellaprime_app, sellaprime_supervisor, area_server,
prime_server, lib_lin, lib_primes, my_alarm_handler]},
{registered,[area_server, prime_server, sellaprime_super]},
{applications, [kernel,stdlib]},
{mod, {sellaprime_app,[]}},
{start_phases, []}
]}.
它通常是有道理的,除了 registered
列表中的 sellaprime_super
。我在其他任何地方都找不到。好像应该是sellaprime_supervisor
。此外,如果我将一个完全虚构的名称添加到 registered
列表并调用 application:start(sellaprime).
,则不会出现错误 那么,这里发生了什么?
它只是为了检测systools when you build a release. Here is documentation of application resource file应用程序之间的名称冲突。
在 Joe Armstrong 的 Programming Erlang 一书的第 23 章中,有一个名为 sellaprime.app 的文件,其内容如下:
%% This is the application resource file (.app file) for the 'base'
%% application.
{application, sellaprime,
[{description, "The Prime Number Shop"},
{vsn, "1.0"},
{modules, [sellaprime_app, sellaprime_supervisor, area_server,
prime_server, lib_lin, lib_primes, my_alarm_handler]},
{registered,[area_server, prime_server, sellaprime_super]},
{applications, [kernel,stdlib]},
{mod, {sellaprime_app,[]}},
{start_phases, []}
]}.
它通常是有道理的,除了 registered
列表中的 sellaprime_super
。我在其他任何地方都找不到。好像应该是sellaprime_supervisor
。此外,如果我将一个完全虚构的名称添加到 registered
列表并调用 application:start(sellaprime).
,则不会出现错误 那么,这里发生了什么?
它只是为了检测systools when you build a release. Here is documentation of application resource file应用程序之间的名称冲突。