当前位置:  开发笔记 > 编程语言 > 正文

erlang - 启动脚本

如何解决《erlang-启动脚本》经验,为你挑选了1个好方法。

要启动我的程序,我会执行下一个序列:

$ erl
> c(module1).
> c(module2).
> c(modulen).
modulen:start().

是否有可能创建允许我启动程序的脚本?



1> jldupont..:

您可以使用加载器脚本来负责以OTP方式启动应用程序:

-module(XYZ_app).

-export([start/0]).

start() ->
    application:start(inets),
    application:start(XYZ).

您通过shell脚本启动该脚本.escript如果您打算在操作系统启动时运行构建守护进程,请注意使用,因为它们很棘手.

#!/bin/bash
erl -boot start_sasl -s XYZ_app start

当然你需要你的XYZ.app文件(只是一个例子):

{application, tinycouch,
 [{description, "tinycouch"},
  {vsn, "0.1"},
  {modules, [
         tinycouch, tinycouch_app, tinycouch_sup,
         tinycouch_server, tinycouch_logger_h, tinycouch_utils,
         tinycouch_db, mod_tinycouch
        ]},
  {registered, [tinycouch
            ,tinycouch_server
            ,tinycouch_sup
           ]},
  {applications, [kernel, stdlib, sasl, inets]},
  {env, []},

  %% Application Start point
  {mod, {tinycouch_sup, []}}]}.

...并且所有.erl文件都必须已编译.

请注意,如果您打算分发您的应用程序(例如Debian存储库等),您可能应该考虑使用make文件来编译和安装您的应用程序.

最后要注意的是:你也可以使用一个boot文件(最终的OTP方式),但我发现这些非常有限:一个启动文件将你的应用程序绑定到Erlang(和其他相关应用程序)的特定版本.您的应用程序可能能够在各种Erlang版本中运行,但您需要为要发布的每个"平台版本"都有一个单独的构建/发布过程.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有