分布式Erlang:了解远程主机和启动功能

分布式Erlang:了解远程主机和启动功能,erlang,distributed-computing,Erlang,Distributed Computing,我正在尝试实现一个非常简单的示例,以便首先了解分布式Erlang。因此,我在同一台机器上启动两个节点: erl -sname dilbert erl -sname dogbert 任务是dogbert生成dilbert输出Hello,World使用一个简单的fun()->io:format(“你好,世界!”)在节点dilbert上结束。我认为这将很容易与dogbert的外壳: (dogbert@centraldogma.fubar)1> spawn(dilbert, fun () -&g

我正在尝试实现一个非常简单的示例,以便首先了解分布式Erlang。因此,我在同一台机器上启动两个节点:

erl -sname dilbert
erl -sname dogbert
任务是
dogbert
生成
dilbert
输出
Hello,World使用一个简单的
fun()->io:format(“你好,世界!”)在节点
dilbert
上结束。我认为这将很容易与
dogbert
的外壳:

(dogbert@centraldogma.fubar)1> spawn(dilbert, fun () -> io:format("HELLO!") end).
<0.39.0>

=ERROR REPORT==== 13-Jun-2012::17:49:04 ===
** Can not start erlang:apply,[#Fun<erl_eval.20.82930912>,[]] on dilbert **
(dogbert@centraldogma.fubar)1> 繁殖(dilbert,fun()->io:format(“HELLO!”)结束)。
=错误报告===2012年6月13日::17:49:04===
**无法在dilbert上启动erlang:apply、[#Fun、[]]**

在同一个shell中,使用
节点()。
输出
[]
。嗯,
dogbert
显然不知道
dilbert
,但为什么会这样呢?或者,如何使分布式erlang中的节点相互了解?

有两个问题:

  • 必须为这两个节点设置一个公共cookie,以便它们可以交互

    erl-sname dilbert-setcookie pointyhairedboss
    erl-sname dogbert-setcookie pointyhairedboss

  • 必须指定要连接到的节点的主机名。 产卵('dogbert@yourhostname,fun()->io:format(“HELLO!”)end)


  • 有两个问题:

  • 必须为这两个节点设置一个公共cookie,以便它们可以交互

    erl-sname dilbert-setcookie pointyhairedboss
    erl-sname dogbert-setcookie pointyhairedboss

  • 必须指定要连接到的节点的主机名。 产卵('dogbert@yourhostname,fun()->io:format(“HELLO!”)end)


  • 因为他在同一台机器上启动了它们(可能来自同一个用户帐户),所以它们应该自动获得相同的默认cookie。因为他在同一台机器上启动了它们(可能来自同一个用户帐户),所以它们应该自动获得相同的默认cookie。