Application.start
start, go back to Application module for more information.
Specs
start(app(), restart_type()) :: :ok | {:error, term()}
Starts the given app.
If the app is not loaded, the application will first be loaded using load/1.
Any included application, defined in the :included_applications key of the
.app file will also be loaded, but they won't be started.
Furthermore, all applications listed in the :applications key must be explicitly
started before this application is. If not, {:error, {:not_started, app}} is
returned, where app is the name of the missing application.
In case you want to automatically load and start all of app's dependencies,
see ensure_all_started/2.
The type argument specifies the type of the application:
:permanent- ifappterminates, all other applications and the entire node are also terminated.:transient- ifappterminates with:normalreason, it is reported but no other applications are terminated. If a transient application terminates abnormally, all other applications and the entire node are also terminated.:temporary- ifappterminates, it is reported but no other applications are terminated (the default).
Note that it is always possible to stop an application explicitly by calling
stop/1. Regardless of the type of the application, no other applications will
be affected.
Note also that the :transient type is of little practical use, since when a
supervision tree terminates, the reason is set to :shutdown, not :normal.