application:load/2
加载一个应用程序
用法:
load(AppDescr, Distributed) -> ok | {error, Reason}
把一个应用程序的描述信息加载到 Erlang 应用控制器里。它也会把其他包含应用的描述信息加载进来。这个函数不会加载实际的 Erlang 目标 BEAM 代码。
参数 AppDescr 可以是应用的名字,在这种情况下,应用控制器将会搜索代码目录路径下的应用资源文件 Application.app,并把该应用资源文件包含的描述信息加载进来。
应用的描述信息可以直接是一个描述应用的元组,这个元组是一个固定格式和内容的来描述该应用。
如果 Distributed == {Application,[Time,]Nodes},那么应用将会是分布式加载。给出的参数值会覆盖系统原来默认的分布配置参数值。参数 Application 必须是应用的名字(跟第一个参数一样)。如果一个节点崩溃,并且指定了一个 Time 值,那么应用控制器会先等待 Time 毫秒时间,然后会尝试重启在另一节点上的应用。如果 Time 没有指定给出,它默认赋值为 0,应用将会立即重启。
参数 Nodes 是一个应用运行的节点名列表,它的启动优先顺序是从左到右。节点名可以是用元组包含起来的数据,这样表示它们是有相同的优先权。例如
Nodes = [cp1@cave, {cp2@cave, cp3@cave}]
这样的话,应用会先在节点 cp1@cave 启动。如果 节点 cp1@cave 启动完毕,应用将在节点 cp2@cave 和 cp3@cave 两者任何之一的节点上启动。
如果参数 Distributed 是 default,那么系统原来默认的分布配置参数值将会被使用。
application:load(crypto, default).