在线文档教程
Erlang 20

slave

slave

模块

slave

模块摘要

用于启动和控制从节点的函数。

描述

该模块提供了启动 Erlang 从节点的功能。当主站终止时,由主站启动的所有从站节点自动终止。从站产生的所有终端输出都发送回主节点。File I/O 通过主设备完成。

其他主机上的从属节点将从该rsh程序启动。必须允许用户rsh访问远程主机而不提示输入密码。这可以通过多种方式进行安排(有关详细信息,请参阅rsh文档)。与主节点在同一主机上启动的从节​​点会继承主节点的某些环境值,例如当前目录和环境变量。有关在另一台主机上启动从站时可以假定的环境,请参阅该rsh程序的文档。

rsh程序的另一种选择可以在命令行中指定erl(1)如下:

-rsh Program

从节点将在主节点上使用相同的文件系统。至少,Erlang / OTP将安装在两台计算机上的相同位置,并且将使用相同版本的Erlang。

在Windows上运行的节点只能在其运行的主机上启动从节点。

主节点必须是活动的。

出口

pseudo([Master | ServerList]) -> ok

类型

调用pseudo(Master, ServerList)。如果你想从命令行启动一个节点并设置许多伪服务器,那么 Erlang 运行时系统可以启动,如下所示:

% erl -name abc -s slave pseudo klacke@super x --

pseudo(Master, ServerList) -> ok

类型

启动一些伪服务器。伪服务器是一个具有注册名称的服务器,它只会将所有消息传递给在主节点上执行的真实服务器。伪服务器是只有与真实服务器具有相同注册名称的中介。

例如,如果您启动了一个从节点N并希望pxw在该节点上执行图形代码,则可以在从节点上将服务器pxw_server作为伪服务器启动。如下所示:

rpc:call(N, slave, pseudo, [node(), [pxw_server]]).

relay(Pid) -> no_return()

类型

运行伪服务器。该函数永远不会返回任何值,执行该函数的进程将收到消息。收到的所有消息都会传递给Pid

start(Host) -> {ok, Node} | {error, Reason}

start(Host, Name) -> {ok, Node} | {error, Reason}

start(Host, Name, Args) -> {ok, Node} | {error, Reason}

类型

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

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

从节点重置其user进程,以便在从站上生成的所有terminal I/O都自动转发给主站。另外,文件进程被中继到主站。

参数Args用于设置erl命令行参数。如果提供,它会传递给新节点并可用于各种用途; 见erl(1)

作为一个例子,假设你想在H节点名为host的主机上启动一个从节点,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

没有rsh电脑上的程序。

{already_running, Node}

具有名称的节点Name@Host已经存在。

start_link(Host) -> {ok, Node} | {error, Reason}

start_link(Host, Name) -> {ok, Node} | {error, Reason}

start_link(Host, Name, Args) -> {ok, Node} | {error, Reason}

类型

start/1,2,3除了从节点链接到当前正在执行的进程之外,以与执行相同的方式启动从节点。如果该过程终止,则从属节点也终止。

有关参数和返回值的说明,请参见start/1,2,3

stop(Node) -> ok

类型

停止(kills)一个节点。