<div dir="ltr">When you call application:start(myapp) then the corresponding application tuple from the .app file for that application is consulted to find which module contains the startup code. This is the line with the 'mod' key. This specifies the module and the arguments to pass as a second parameter to that module's start/2 function as {Mod, StartArg}.<div><br></div><div>The reason for this is that when you are working in a (semi)interactive environment, you would simply call the start function directly. And this usually happens during development or testing. But when you have a finished system, you have automated startup using the application framework. In this case any arguments must be available via configuration. Thus you can provide the arguments as part of the application configuration in the .app file. There you can have an entry {mod, {myapp, some_erlang_term}} and this would invoke myapp:start(normal, some_erlang_term).</div><div><br></div><div>I have not seen this used very often.</div><div><br></div><div>Hope this explains it a little bit,</div><div>Robby</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 13 July 2015 at 11:39, Nuku Ameyibor <span dir="ltr"><<a href="mailto:nayibor@gmail.com" target="_blank">nayibor@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>u can add environmental variables for your application in  your .app file  .<br></div>there is a tuple with a key env which u can use to add environmental variables to your application which you can then access from your application<br></div>eg .<br>{application, test,<br> [{vsn, "1.0.0"},<br>  {description, "testing"},<br>  {modules, [test, test_sup,test_start]},<br>  {applications, [stdlib, kernel, crypto]},<br>  {registered, [test,test_sup]},<br>  {mod, {test, []}},<br>  {env, <br>[<br>{env1,b},<br>{env2,a},<br>{env3,c}<br>]<br>}<br> ]}.<br><br></div>you can access them like so <br>{ok, Env} = application:get_env(env1), etc..<br><br></div>there is also a set_env/3 ,set_env/4 which can be used to change environmental variables during run-time <br><div><div><div><div><br><div><div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Sun, Jul 12, 2015 at 1:19 PM, Lihe Wang <span dir="ltr"><<a href="mailto:wanglihe.programmer@gmail.com" target="_blank">wanglihe.programmer@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="h5"><div dir="ltr"><div><div><div>Can any one give the explain about OTP? The application behaviour's call back "start" need args, but when I want start my code as a real application, I only can write "applicaion:start(mycode)", and can not pass any args to mycode. Why otp design like this? When I want start a application as background service from escript, for example:<br><br></div>main([Arg1, Arg2, Arg3]) -><br></div>    application:start(mycode1), %%with Arg1<br>    application:start(mycode2),  %%with Arg2<br></div><div>    workcode(Arg3). %%workcode (escript) will run as a daemon, and need service supplied by mycode1 and mycode2.<br><br></div><div>What is the right way to write these code?<br></div>    <br><div><div>     <br></div></div></div>
<br></div></div>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div></div></div></div></div></div></div></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>