一种以standalone方式启动erlang应用的方法

就像普通java应用一样启动一个erlang虚拟机,程序在虚拟机上运行,没有交互界面。

一个办法是启动时带 -detached参数,这样erlang虚拟机就进入了所谓的detached模式,在detached模式中,erlang静悄悄的在背后运行,没有常见的那个交互终端界面。

例子:以detached模式启动一个my_app应用
erl -detached -name foo@192.168.1.103 -setcookie abc -s my_app

my_app就像普通的daemon应用一样在背后运行了

但是当要控制detached模式启动的erlang虚拟机时怎么办,比如退出应用,或者查看erlang应用状态等。

连接detached模式的erlang节点的方法就我所知有两种:

1。 通过远程shell JCL登录,在Programming Erlang的6.7.3节介绍了这个,简单的说就是ctrl+g后的那个shell界面。具体方法是:
i) 启动一个erlang节点:
erl -name bar@192.168.1.103 -setcookie abc

ii) ctrl+g进入shell JCL,然后远程连接detached模式的erlang:
--> r 'foo@192.168.1.103'
--> c
Eshell V5.7.1 (abort with ^G)
(foo@192.168.1.103)1>

就可以控制detached模式的erlang了

2。使用erl的-remsh参数
erl -name bar@192.168.1.103 -remsh foo@192.168.1.103 -setcookie abc

但这样attach上后不知道怎么恢复到原来的detached模式


个人觉得shell JCL的方式比较好,如果有多个detached模式的Erlang节点(不管是不是远程的),都可以用一个Erlang shell进行控制,有点screen的感觉了,呵呵。

detached模式比较符合我们常用的erlang启动方法。在mryufeng的[url=http://mryufeng.iteye.com/blog/362394]另一种实用的接入erlang控制台的方法[/url]中提到的方法也蛮好的说,但不知道可不可以远程接入。

嗯,先记下

注:
带-detached参数的启动可能等效于同时带-noshell和-noinput参数的启动,用
ps -ef|grep beam

查看-detached启动的erlang进程时就会发现包含了-noshell -noinput这俩参数。


参考资料
1. [url=http://www.sics.se/~joe/tutorials/web_server/web_server.html#m2.2]Detached mode[/url]
2.[url=http://erlang.org/doc/man/erl.html]erl[/url]
3. [url=http://erlang.org/pipermail/erlang-questions/2008-May/034768.html]How to start an erlang applications from the command line non-interactively?[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值