config(5) Files config(5)
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 will override the values in the application resource files (see app(5) ). The val-
ues in the configuration file can be overridden by command line flags (see erl(1) ).
The value of a configuration parameter is retrieved by calling application:get_env/1,2 .
FILE SYNTAX
The configuration file should be called Name.config where Name is an arbitrary name.
The .config file contains one single Erlang term. The file has the following syntax:
[{Application1, [{Par11, Val11}, ..]},
..
{ApplicationN, [{ParN1, ValN1}, ..]}].
* Application = atom() is the name of the application.
* Par = atom() is the name of a configuration parameter.
* Val = term() is the 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
should 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 appli-
cation configurations.
This means that specifying another, or additional, .config files would lead to inconsistent update of application configurations. There-
fore, in Erlang 5.4/OTP R10B, the syntax of sys.config was extended to allow pointing out other .config files:
[{Application, [{Par, Val}]} | File].
* File = string() is the name of another .config file. The extension .config may 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 will yield the following environment for myapp :
[{par1,val1},{par2,val3},{par3,val4}]
The behaviour if a file specified in sys.config does not exist or is erroneous in some other way, is backwards compatible. Starting the
runtime system will fail. Installing a new release version will not fail, but an error message is given and the erroneous file is ignored.
SEE ALSO
app(5) , erl(1) , OTP Design Principles
Ericsson AB kernel 2.14.3 config(5)