OS X上で話をするために、2つのERLシェルを取得
質問
私が話を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