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
将被添加到代码路径中。
M
nesia目录将被设置为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)一个节点。