You need to an extra option to the .app
file which gives the application callback module and start args. There is no implicit callback module name and if none is given then no processes will be started. The option is {mod,{CallBackMod,StartArgs}}
so the whole .app
file will become:
{application,test_app,
[{description,"Test App"},
{vsn,0.9},
{applications,[kernel,stdlib]},
{modules,[test_app,log_utils]},
{registered,[test_app]},
{mod,{test_app,[]}}]}.
The 2nd element, test_app
in your case, is the name of the application and not the callback module; they don't have to be the same. If a callback is given then Mod:start/2
will be called whe the application is started and Mod:stop/1
when the application has been stopped.
Note that an application doesn't have to run any processes when it is started, for example the stdlib
application doesn't.
You will find a better description here in Applications.