Erste zwei erl Muscheln auf OS X sprechen
Frage
Ich möchte in der Lage sein Gespräch zu haben zwei Erlang Schalen. Ich laufe auf OS X.
Ich habe versucht, das tut17 Beispiel hier .
Ich habe auch versucht:
$ erl -sname foo
und dann in einem neuen Terminal:
$ erl -sname bar
(bar@elife)1> net_adm:ping(foo@elife).
pang
Irgendwelche Ideen?
Lösung
Es ist eine Art auf dem Mac gebrochen. Standardmäßig kann der Mac nicht über eine eigene Kurznamen aufzulösen. Ihr Host-Name ist wirklich wahrscheinlich "elife.local".
Wenn Sie erl mit -Name FQDN starten, dann werden die Pings funktionieren.
das heißt: Sie würde es beginnen mit
$ erl -name foo@elife.local
dies wahrscheinlich, indem sie die MAC-fähig zur Lösung seiner eigenen Kurznamen
festgelegt werden könnte,Hier ist Beispiel für die Ausgabe von meinem Mac. Als ich -sname bekomme ich das gleiche Ergebnis wie Sie.
Der erste Knoten:
$ erl -name foo@mookie.local
Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]
Eshell V5.7.4 (abort with ^G)
(foo@mookie.local)1>
Der andere Knoten:
$ erl -name bar@mookie.local
Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]
Eshell V5.7.4 (abort with ^G)
(bar@mookie.local)1> net_adm:ping('foo@mookie.local').
pong
Andere Tipps
Ein einfacheres Update könnte nur die Bearbeitung Ihrer / etc / hosts-Datei und stellen Sie sicher, dass Sie so etwas wie diese Linie haben:
127.0.0.1 localhost elife
My Mac funktioniert gut mit Kurznamen, und ich glaube, das ist, was es getan hat.
Für die Knoten miteinander kommunizieren, sollten beide das gleiche Cookie haben. Auf der gleichen Box funktioniert es, wie es von $ HOME / .erlang.cookie Datei mit dem Cookie am Ende. Wenn diese Datei nicht vorhanden ist, erstellen Sie eine neue Datei und stellen einige zufällige Cookie darin. Zukünftige Schalen verwenden das gleiche Cookie. Aber es ist immer besser, das Cookie auf der Kommandozeile über setcookie Parameter angeben.
erl -name node1@foo.local -setcookie MyCookie