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

我尝试了tut17示例here

我也尝试过:

$ 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 [email protected]

可以通过使Mac能够解析其自己的简称来解决此问题

这是我的Mac的示例输出。当我执行-sname时,得到的结果与您相同。

第一个节点:
$ erl -name [email protected]
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)
([email protected])1>

另一个节点:
$ erl -name [email protected]
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)
([email protected])1> net_adm:ping('[email protected]').
pong

关于macos - 让两个erl shell在OS X上进行对话,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2136918/

10-13 07:29