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