2011-03-16 171 views
2

这一直是我目前的日常如何通过命令行将应用程序作为守护程序启动?

sudo nohup erl -sname foo -pa ./ebin -run foo_supervisor shell -noshell -noinput & 

其中壳功能看起来像这样

shell() -> 
    {ok, Pid} = supervisor:start_link({local,?MODULE}, ?MODULE, _Arg = []), 
    unlink(Pid). 

如果我不从外壳断开链接立即停止出于某种原因。有没有一种方法可以像我通常的应用程序那样启动我的应用程序:start(foo)。另外如果我想开始sasl呢?我还可以在哪里了解更多关于使用螺纹钢制作自包含软件包的信息?

+0

三个不同的问题? – AbiusX 2011-03-16 22:50:31

回答

4

前言。关于您的取消链接

this other SO thread @filippo解释了为什么在从shell中测试主管时需要unlink

首先。你需要的是一个Erlang application

从DOC读:

在OTP,应用表示 部件实现某些特定 功能,可以启动和 停止作为一个单元,并且其可以是 重复使用其他系统也是如此。

有关如何实现Erlang应用程序的详细信息,请访问here。你需要做的三个主要的事情是:

二。开始SASL。

在上述应用程序资源文件中,您可以指定要在应用程序之前启动的应用程序的列表。您将添加如下内容:

... 
{applications, [kernel, stdlib, sasl]}, 
... 

告诉它启动SASL。

三。钢筋。

有螺纹钢here介绍,这也解释了如何使用钢筋,以帮助你在上面的步骤,收拾你的品牌新的应用程序转换成Erlang release以及如何启动它。

相关问题