题
我希望能够有两个二郎壳交谈。我运行在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
不隶属于 StackOverflow