erl0007 - erlang 远程节点连接的两种方式

启动连接:erl -setcookie abc -name xxx@192.168.x.x -remsh xxx@192.168.x.y

退出:ctrl + g,q

参考:http://www.cnblogs.com/me-sa/archive/2012/01/18/erlang0033.html

转:http://www.2cto.com/kf/201306/222781.html

1. 启动后台运行的erlang环境(remsh模式)

按以下命令:

erl -detached -name a@127.0.0.1

注意,-name的值必须是xxxx@ip的形式。其中xxxx是英文名,ip必须是数字和点
的形式。如果是可以解析的有效域名应该也是可以的,但我试了用localhost会不
能被正常接。同时,这个ip也必须是客户端能访问到的有效ip,否则同样不能
成功接。

启动时还可以加上-s指定要运行的模块,函数。然后它就在后台跑了。如果你是
远程用ssh这些方式上控制台的,现在可以关了,它也还会继续跑。

2. 启动另一个erlang环境连接到之前启动的erlang(JCL模式)
现在,我们需要上之前后台启动的erlang去控制一下它,或者查看一下情况之
类的。用以下命令启动:

erl -name b@ip

其中,b也是一个英文名,但注意不能和之前的a相同(即使ip不同也不行)。此
处的ip貌似可以随便写,因为不需要从a再回b。但如果需要,可能还是要写一
个能从a访问到b的有效ip。

启动后,进了互动的环境,此时按Ctrl+g,进用户切换模式,这时输

r 'a@127.0.0.1'
c
<Enter>

会发现此时你已经在a@127.0.0.1的用户下发号施令了。当你用完后,再用
Ctrl+g然后用j查看b的id是1还是2,用c 1或c 2回来。在b里面用q().退出。这
样a还是在运行。

注释:两种模式的区别:(来自《硝烟中的erlang》)

 REMSH底层的运作机制和使用JCL模式时完全一样,不过初始shell是远程而非本地启动的(JCL还是本地的)。^G仍然是最安全的退出远程shell的方法。

上一篇:ocp 1Z0-047 1-60题解析


下一篇:Oracle 10g创建表空间的完整步骤详解