Provided by: erlang-manpages_20.3.8.5+dfsg-1build1_all bug

NAME

       config - Configuration file.

DESCRIPTION

       A  configuration file contains values for configuration parameters for the applications in
       the system. The erl command-line argument -config Name tells the system to use data in the
       system configuration file Name.config.

       Configuration  parameter  values  in  the  configuration  file  override the values in the
       application resource files (see app(5). The  values  in  the  configuration  file  can  be
       overridden by command-line flags (see erts:erl(1).

       The value of a configuration parameter is retrieved by calling application:get_env/1,2.

FILE SYNTAX

       The configuration file is to be called Name.config, where Name is any name.

       File .config contains a single Erlang term and has the following syntax:

       [{Application1, [{Par11, Val11}, ...]},
        ...
        {ApplicationN, [{ParN1, ValN1}, ...]}].

         Application = atom():
           Application name.

         Par = atom():
           Name of a configuration parameter.

         Val = term():
           Value of a configuration parameter.

SYS.CONFIG

       When starting Erlang in embedded mode, it is assumed that exactly one system configuration
       file is used, named sys.config. This file is to be located  in  $ROOT/releases/Vsn,  where
       $ROOT is the Erlang/OTP root installation directory and Vsn is the release version.

       Release handling relies on this assumption. When installing a new release version, the new
       sys.config is read and used to update the application configurations.

       This means that  specifying  another  .config  file,  or  more  .config  files,  leads  to
       inconsistent  update  of  application  configurations.  There  is,  however,  a syntax for
       sys.config that allows pointing out other .config files:

       [{Application, [{Par, Val}]} | File].

         File = string():
           Name of another .config file. Extension .config can be omitted. It is  recommended  to
           use  absolute  paths. A relative path is relative the current working directory of the
           emulator.

       When traversing the contents of sys.config and a filename is encountered, its contents are
       read  and  merged  with  the  result  so  far.  When  an  application  configuration tuple
       {Application, Env} is found, it is merged with the result so far. Merging means  that  new
       parameters are added and existing parameter values overwritten.

       Example:

       sys.config:

       [{myapp,[{par1,val1},{par2,val2}]},
        "/home/user/myconfig"].

       myconfig.config:

       [{myapp,[{par2,val3},{par3,val4}]}].

       This yields the following environment for myapp:

       [{par1,val1},{par2,val3},{par3,val4}]

       The  behavior  if  a  file  specified  in  sys.config  does not exist, or is erroneous, is
       backwards compatible. Starting the runtime system will  fail.  Installing  a  new  release
       version will not fail, but an error message is returned and the erroneous file is ignored.

SEE ALSO

       app(5), erts:erl(1), OTP Design Principles