application startup

Serge Aleynikov serge@REDACTED
Sat Aug 13 15:17:44 CEST 2005


Ulf Wiger wrote:
> 
> All applications in the .rel file are started
> automatically if they
> - have a 'mod' attribute

I looked at $ERL_ROOT/lib/* and sampled several standard apps - they all 
have a 'mod' attribute, so I infer that by default any app listed in the 
application's *.rel file will get started automatically by default.

> - are not included in another application

I.e. not being included in the application's 'applications' attributes 
in the *.app file, or there's another place to include an
application?

> The 'builder' contrib builds two start scripts:
> one where all applications are started as expected,
> and one where only kernel and stdlib are started,
> but all applications are loaded, and the code path
> set to include all code. The latter script is useful
> if you e.g. want to initialize mnesia and other stuff,
> and the way it's generated is by simply modifying the
> start script after it's been built.

Thanks, I downloaded the 'builder' contrib.  Will experiment with it.

Serge

> Den 2005-08-12 23:21:30 skrev Serge Aleynikov <serge@REDACTED>:
> 
>> Folks,
>>
>> I have the following config, and I noticed that os_mon and mnesia  
>> applications get started at startup when I use a boot script:
>>
>>  >erlc -pa ../ebin -o ../ebin drpdb.rel
>>  >cd ../ebin
>>  >erl -boot drpdb -sname drpdb -config ../priv/drpdb
>>
>> I was under impression that if an application is listed in the *.rel  
>> file, it should be loaded but not started.  In order for it to be  
>> started it must be included in the {applications, ...} tuple of the  
>> *.app file.  However, what I am observing is that all apps that are  
>> listed in the *.rel file are started automatically.  Am I doing  
>> something wrong?
>>
>> ====== drpdb.rel ========
>> {release, {"drpdb","1.0"}, {erts, "5.4.8"},
>>   [{kernel,"2.10.9"},
>>    {stdlib,"1.13.8"},
>>    {sasl, "2.0.1"},
>>    {drpdb, "1.0"},
>>    {os_mon, "1.7.4"},
>>    {mnesia, "4.2.2"}
>>   ]}.
>>
>>
>> ====== drpdb.app ========
>> {application, drpdb,
>>   [
>>    {description, "Master Database Server"},
>>    {vsn, "1.0"},
>>    {id, "drpdb"},
>>    {modules,
>>     [
>>        drpdb_app,
>>        drpdb_sup,
>>        drpdb
>>      ]
>>     },
>>     {registered, [ drpdb_sup, drpdb ] },
>>     {applications, [ kernel, sasl ] },
>>     {mod, {drpdb_app, []}},
>>     {env, []}
>>    ]
>> }.
>>
> 
> 
> 

-- 
Serge Aleynikov
R&D Telecom, IDT Corp.
Tel: (973) 438-3436
Fax: (973) 438-1464
serge@REDACTED



More information about the erlang-questions mailing list