当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang start(Host)用法及代码示例


start(Host) -> {ok, Node} | {error, Reason}
start(Host, Name) -> {ok, Node} | {error, Reason}
start(Host, Name, Args) -> {ok, Node} | {error, Reason}
类型:
Host = inet:hostname()
Name = atom() | string()
Args = string()
Node = node()
Reason = timeout | no_rsh | {already_running, Node}

在主机 Host 上启动从节点。主机名不必指定为完全限定名称;也可以使用短名称。这与适用于分布式 Erlang 节点名称的条件相同。

启动的节点名称变为 Name@Host 。如果未提供名称,则该名称将与执行调用的节点相同(节点名称的主机名部分除外)。

从节点重置其 user 进程,以便从节点产生的所有终端 I/O 都会自动中继到主节点。此外,文件进程被中继到主站。

参数Args用于设置erl命令行参数。如果提供,它会被传递到新节点并可用于多种目的;看erl(1).

例如,假设您要在主机 H 上启动节点名称为 Name@H 的从节点,并希望该从节点具有以下属性:

  • 目录Dir 将添加到代码路径中。
  • Mnesia 目录将设置为 M
  • Unix DISPLAY 环境变量将设置为主节点的显示。

执行以下代码来实现此目的:

E = " -env DISPLAY " ++ net_adm:localhost() ++ ":0 ",
Arg = "-mnesia_dir " ++ M ++ " -pa " ++ Dir ++ E,
slave:start(H, Name, Arg).

该函数返回 {ok, Node} ,其中 Node 是新节点的名称,否则返回 {error, Reason} ,其中 Reason 可以是以下之一:


timeout

主节点与从节点联系失败。这可能会在多种情况下发生:

  • 远程主机上未安装 Erlang/OTP。
  • 另一台主机上的文件系统与主主机具有不同的结构。
  • Erlang 节点有不同的 cookie。

no_rsh

计算机上未找到远程 shell 程序。请注意,默认情况下使用ssh,但可以使用-rsh 标志覆盖它。


{already_running, Node}

名为 Name@Host 的节点已存在。

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 start(Host) -> {ok, Node} | {error, Reason}。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。