我知道节点可以从shell中启动。我正在寻找的是一种从模块内部启动远程节点的方法。我已经搜索了,但没有找到任何内容。
非常感谢您的帮助。
非常感谢您的帮助。
有一个pool(3)
功能:
pool可用于将一组Erlang节点作为计算处理器池运行。它由主节点和一组从节点组成。
pool:start/1,2
启动一个新的池。读取文件.hosts.erlang
以查找可以启动池节点的主机名。使用slave:start/2,3
启动从节点,并传递Name
和(如果提供)Args
。Name
用作节点名称的第一部分,Args
用于指定命令行参数。
使用pool可以获得免费的负载均衡功能。
可以通过以下方式启动主节点:
erl -sname poolmaster -rsh ssh
这里的键-rsh
指定了在远程主机上启动从节点时的替代方式,我们使用SSH。请确保您的机器具有可用的SSH密钥,并且可以使用这些密钥验证到远程主机。
如果文件.hosts.erlang
中没有主机,则不会启动任何从节点,您可以使用slave:start/2,3
手动启动从节点并传递参数(如果需要)。
例如,您可以启动一个远程节点:
Arg = "-mnesia_dir " ++ M,
slave:start(H, Name, Arg).
为了启动Erlang节点,请确保远程计算机上正在运行epmd(1)
。
希望能帮到你。
比连接池更底层的一个模块是slave(3)。连接池是在slave的功能基础上构建。
使用slave:start
启动新的slave。
你可能还需要在命令行上指定-rsh ssh
。
如果你需要连接池提供的这种功能,就使用它,否则你可以通过slave自己构建不同的功能。