2012-03-29 74 views
2

在slave操作系统中遇到slave:start/2的问题,所以我必须在erlang shell中尝试另一个方向“自动启动os:cmd的公共节点”。在erlang shell中启动公共节点

一种方法是直接通过命令,另一种方式是通过bash文件。但是这两种方式都面临同样的问题。如果不能自动启动,我必须每次手动启动节点。

Eshell V5.9 (abort with ^G) 
([email protected])1> os:cmd("erl -name abcd"). 
"Eshell V5.9 (abort with ^G)\n([email protected])1> *** Terminating erlang ('[email protected]')\n" 
([email protected])3> os:cmd("~/Documents/Project/node_start"). 
"Eshell V5.9 (abort with ^G)\n([email protected])1> *** Terminating erlang ('[email protected]')\n" 

bash的文件内容如下:

#/bin/sh 
erl -name abc 

回答

2

不,我真的很喜欢这种做法,但作出上述工作,你应该通过“分离”参数设置为“ ERL”命令:

erl -name foo 

1> os:cmd("erl -name bar -detached"). 
[] 

2> net_adm:ping('[email protected]'). 
pong 

3> nodes(). 
['[email protected]'] 

doc读:

-detached

启动从系统控制台分离的Erlang运行时系统。用于运行守护进程和后台进程。意味着 -noinput。

+0

非常感谢。 – 2012-03-29 09:25:40