面对slave的问题:在Lion OS中启动/ 2,所以我必须在erlang shell中尝试另一个方向“使用os:cmd自动启动公共节点”。
一种方法是直接通过命令,另一种方式是通过bash文件。但两种方式都面临同样的问题。如果无法自动启动,我必须每次都手动启动节点。
Eshell V5.9 (abort with ^G)
(emacs@yus-iMac.local)1> os:cmd("erl -name abcd").
"Eshell V5.9 (abort with ^G)\n(abcd@yus-iMac.local)1> *** Terminating erlang ('abcd@yus-iMac.local')\n"
(emacs@yus-iMac.local)3> os:cmd("~/Documents/Project/node_start").
"Eshell V5.9 (abort with ^G)\n(abc@yus-iMac.local)1> *** Terminating erlang ('abc@yus-iMac.local')\n"
bash文件内容如下:
#/bin/sh
erl -name abc
答案 0 :(得分:2)
并不是说我真的很喜欢这种方法,但为了完成上述工作,你应该将“detached”参数传递给'erl'命令:
erl -name foo
1> os:cmd("erl -name bar -detached").
[]
2> net_adm:ping('bar@pigeon.local').
pong
3> nodes().
['bar@pigeon.local']
阅读doc:
-detached
启动与系统控制台分离的Erlang运行时系统。用于运行守护进程和后台进程。暗示 -noinput。