application startup

Serge Aleynikov serge@REDACTED
Mon Aug 15 16:51:16 CEST 2005


Very nice!  While I couldn't find this reference in the HTML docs, 
you're right that in man pages it is described very clearly in black & 
white (at least on my terminal window ;-) ).

Serge

Gunilla Arendt wrote:
> It is possible to specify that an application should only be loaded, not 
> started, when creating the .rel file (see also rel(3)):
> 
> {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", load},
>    {mnesia, "4.2.2", load}
>   ]}.
> 
> (At least when using systools:make_script/1,2 to generate the boot 
> script, I don't know about 'builder').
> 
> IMO, this is a much better way to do it. Unless, of course, you really 
> want os_mon and mnesia to be included applications, started by a 
> supervisor in drpdb.
> 
> / Gunilla
> 
> 
> 
> Serge Aleynikov wrote:
> 
>> 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