From 84adefa331c4159d432d22840663c38f155cd4c1 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 20 Nov 2009 14:54:40 +0000 Subject: The R13B03 release. --- lib/kernel/doc/src/config.xml | 125 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 lib/kernel/doc/src/config.xml (limited to 'lib/kernel/doc/src/config.xml') diff --git a/lib/kernel/doc/src/config.xml b/lib/kernel/doc/src/config.xml new file mode 100644 index 0000000000..34398e90ac --- /dev/null +++ b/lib/kernel/doc/src/config.xml @@ -0,0 +1,125 @@ + + + + +
+ + 19972009 + Ericsson AB. All Rights Reserved. + + + The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved online at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and limitations + under the License. + + + + config + + + + +
+ config + Configuration file. + +

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(4)). The values 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 application configurations.

+

This means that specifying another, or additional, .config + files would lead to inconsistent update of application + configurations. Therefore, 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(4), erl(1), OTP Design Principles

+
+
+ -- cgit v1.2.3