Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5119796
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: Erlang

2013-05-11 16:07:54

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

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

例子:以detached模式启动一个my_app应用


  1. 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节点:


  1. erl -name bar@192.168.1.103 -setcookie abc


ii) ctrl+g进入shell JCL,然后远程连接detached模式的erlang:

  1. --> r 'foo@192.168.1.103'
  2. --> c
  3. Eshell V5.7.1 (abort with ^G)
  4. (foo@192.168.1.103)1>

就可以控制detached模式的erlang了

2。使用erl的-remsh参数


  1. 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的另一种实用的接入erlang控制台的方法中提到的方法也蛮好的说,但不知道可不可以远程接入。

嗯,先记下

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


  1. ps -ef|grep beam

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


参考资料
1.
2.
3.


原文链接:http://cryolite.iteye.com/blog/383927
阅读(1479) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~