2009-01-05 5 views
5

Ich spiele mit der distributed programming tutorial aus der 5.4 Dokumentation und habe ein Problem mit Knotennamen festgestellt.Benennen von Knoten in Erlang

Mein MacBook Standardname (jamess-macbook) nicht gut mit Erlang-Knoten-Namensschema aufgrund des Strich spielt:

([email protected])4> {my_process, [email protected]} ! start 
** exception error: bad argument in an arithmetic expression 
    in operator -/2 
     called as [email protected] - macbook 

Ich bin sicher, dass es eine einfache Möglichkeit, dies zu umgehen, kurz Umbenennung zu bekommen alle Maschinen, auf denen ich Erlang laufen lassen möchte, aber ich kann es in der Dokumentation nicht sehen.

Irgendwelche Vorschläge?

Antwort

12

Sie müssen nur das Atom richtig angeben. '[email protected]' (mit den einfachen Anführungszeichen) ist der Name des Knotens.

Ein Atom sollte in einzelne Anführungszeichen (') eingeschlossen werden, wenn es beginnt nicht mit einem Kleinbuchstaben oder wenn es andere Zeichen als alphanumerische Zeichen, Unterstrich (_) oder @. - Erlang Reference Manual

Mit kurzen Knotennamen (-sname) haben verschiedene andere Folgen (begrenzte Interoperabilität mit langen Knotennamen Knoten, nicht geladen dns Informationen in inet_db und so weiter).

+0

Noch besser - ich hatte doppelte Anführungszeichen probiert, nicht single; tatsächlich war mir nicht klar, dass sie semantisch anders waren! –

4

der Erlang-Interpreter starten mit:

$ erl -sname node_name 

wo node_name ist der Name, den Sie an der Maschine beziehen verwenden möchten.

Sie können sogar ein verteiltes System auf einer einzelnen Maschine simulieren, indem Sie mehrere Instanzen des Interpreters mit jeweils einem anderen Knotennamen starten.

+1

Ah, ich wusste nicht, dass Sie den vollen Knotennamen (Name @ Maschine) durch Sname liefern können! –

Verwandte Themen