0

本当に簡単な例を実装して、DistributedErlangを最初に調べようとしています。したがって、同じマシンで2つのノードを起動します。

erl -sname dilbert
erl -sname dogbert

タスクは、ノード上の単純なものを使用しdogbertdilbert出力を作成することです。私はこれがのシェルで簡単だろうと思いました:Hello, World!fun () -> io:format("Hello, World!") enddilbertdogbert

(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 **

同じシェルで、nodes().出力を使用します[]。まあ、dogbert明らかにについては知りませんdilbertが、なぜそうなのですか?または、分散erlangのノードがお互いを知るようにするにはどうすればよいですか?

4

1 に答える 1

4

2つの問題があります:

  1. 相互作用できるように、両方のノードに共通のCookieを設定する必要があります。

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

  2. 接続するノードのホスト名を指定する必要があります。spawn('dogbert @ yourhostname'、fun()-> io:format( "HELLO!")end)。

于 2012-06-13T16:30:37.320 に答える