我知道可以从shell启动节点。我正在寻找的是一种从模块内启动远程节点的方法。我搜索过,但一直都找不到。
感谢任何帮助。
答案 0 :(得分:12)
有pool(3)
设施:
pool可以用来运行一组 Erlang节点作为池 计算处理器。它是 组织为主人和一组 从节点..
pool:start/1,2
启动一个新池。 文件.hosts.erlang
被读取 找到池节点所在的主机名 可以开始了。从节点是 从slave:start/2,3
开始, 传递Name
,如果提供,Args
。Name
用作第一个 部分节点名称使用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
。
因此,如果您需要它提供的功能,请使用池,如果您需要不同的东西,您可以自己从奴隶构建它。