質問

私が話を2つのErlangのシェルを持つことができるようにしたいです。私は、OS X上で動作しています。

私はtut17例を試してみましたここします。

私も試してみた:

$ erl -sname foo

と、新しいターミナルでます:

$ erl -sname bar

(bar@elife)1> net_adm:ping(foo@elife).
pang

任意のアイデア?

役に立ちましたか?

解決

Mac上で壊れたのそれのようなもの。デフォルトでは、MACは、独自の短縮名を解決できません。あなたのホストの名前は、おそらく実際には「elife.local」です。

は-name FQDNでERLを開始する場合は、pingが動作します。

すなわち:あなたがそれを起動します。

$ erl -name foo@elife.local

これはおそらく、それ自身の短い名前を解決するMacができることによって、固定することができます。

ここに私のMacからの出力例です。私は-snameを行うと、私はあなたと同じ結果を得ることができます。

最初のノード:

$ 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> 

他のノード:

$ 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

他のヒント

単純な修正はちょうどあなたの/ etc / hostsファイルを編集すると、この行のようなものを持っていることを確認します。

127.0.0.1 localhostのelife

私のMacは、短縮名で罰金を動作し、私は、これはそれをやったことであると考えています。

ノードが互いに通信

は、両方が同一のクッキーを有していなければなりません。それは$ HOME / .erlang.cookieファイルからクッキーを使用して終了と同じボックス上では動作します。このファイルが存在しない場合、それは新しいファイルを作成し、その中でいくつかのランダムなクッキーを置きます。今後のシェルは同じCookieを使用しています。しかし、それは、いったんsetcookieパラメータを経由して、コマンドライン上のクッキーを指定することは常に良いです。

ERL -name node1@foo.local -setcookie mycookie

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top