2011-03-16 105 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以及如何啓動它。

相關問題