Erlang:以编程方式启动远程节点

时间:2011-01-31 17:06:55

标签: networking erlang otp

我知道可以从shell启动节点。我正在寻找的是一种从模块内启动远程节点的方法。我搜索过,但一直都找不到。

感谢任何帮助。

2 个答案:

答案 0 :(得分:12)

pool(3)设施:

  

pool可以用来运行一组   Erlang节点作为池   计算处理器。它是   组织为主人和一组   从节点..

     

pool:start/1,2启动一个新池。   文件.hosts.erlang被读取   找到池节点所在的主机名   可以开始了。从节点是   从slave:start/2,3开始,   传递Name,如果提供,   ArgsName用作第一个   部分节点名称使用Args   指定命令行参数。

使用游泳池,您可以免费获得负载分配设施。

主节点可以这样启动:

erl -sname poolmaster -rsh ssh

Key -rsh此处指定了rsh的替代方法,用于在远程主机上启动从属节点。我们在这里使用SSH。确保您的盒子具有正常工作的SSH密钥,并且您可以使用这些密钥对远程主机进行身份验证。

如果文件.hosts.erlang中没有主机,则不启动任何从节点,并且可以使用slave:start/2,3在需要时手动传递参数来启动从节点。

例如,您可以启动远程节点:

Arg = "-mnesia_dir " ++ M,
slave:start(H, Name, Arg).

确保epmd(1)在远程复选框上启动并运行,以便启动Erlang节点。

希望有所帮助。

答案 1 :(得分:11)

该池的低级别是slave(3)模块。 Pool建立在slave的功能之上。

使用slave:start启动新的奴隶。

您可能还应该在命令行中指定-rsh ssh

因此,如果您需要它提供的功能,请使用池,如果您需要不同的东西,您可以自己从奴隶构建它。