我希望能够有两个二郎壳交谈。我运行在OS X

我试图tut17示例这里

我也试着:

$ erl -sname foo

,然后在新的终端:

$ erl -sname bar

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

任何想法?

有帮助吗?

解决方案

它的种关于MAC断裂。默认情况下,MAC解决不了自己的短名称。您的主机的名字真可能“elife.local”。

如果你开始ERL与-name FQDN,那么坪会工作。

即:你将与启动

$ 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本地主机网上生活

我的Mac正常工作与简短名字,我相信这是什么做的。

有关的节点彼此通信,两者都应该具有相同的cookie。在同一个盒子它的作品,因为它最终会使用cookie从$ HOME / .erlang.cookie文件。如果这个文件不存在,它创建一个新的文件,并把一些随机Cookie在里面。未来shell使用相同的cookie。但它始终是更好经由的setcookie参数指定命令行上该cookie。

ERL -name node1@foo.local -setcookie的myCookie

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top