让两个erl shell在OS X上进行通话

Eli*_*Eli 6 macos shell erlang erl

我希望能够有两个Erlang shell来交谈.我在OS X上运行.

我在这里尝试了tut17的例子.

我也尝试过:

$ erl -sname foo
Run Code Online (Sandbox Code Playgroud)

然后在一个新的终端:

$ erl -sname bar

(bar@elife)1> net_adm:ping(foo@elife).
pang
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Dav*_*rth 10

它在mac上有点破碎.默认情况下,mac无法解析自己的短名称.你的主人的名字可能真的是"elife.local".

如果你使用-name FQDN启动erl,那么ping将起作用.

即:你会用它开始

$ erl -name foo@elife.local
Run Code Online (Sandbox Code Playgroud)

这可能是通过使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> 
Run Code Online (Sandbox Code Playgroud)

另一个节点:

$ 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
Run Code Online (Sandbox Code Playgroud)