application startup

Serge Aleynikov serge@REDACTED
Sat Aug 13 16:41:11 CEST 2005


Ulf,

I seemed to have rushed to ask the question before searching the mailing 
list.  'included_applications' attribute does the trick.

So if I understand this correctly, in this case only sasl and drpdb will 
be started automatically (besides kernel and stdlib), and not mnesia and 
os_mon:

{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"}
   ]}.

{application, drpdb,
   [
    ...
    {included_applications, [ mnesia, os_mon ] },
    {applications, [ kernel, sasl ] },
    {mod, {drpdb_app, []}},
    {env, []}
    ]
}.

Also I found your post where you modified the application_controller to 
customize start_phases:

http://forums.trapexit.org:81/phpBB/viewtopic.php?t=4574&highlight=build+applications+start

Is that available for download?

Thanks.

Serge

Serge Aleynikov wrote:
> 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