aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/doc/src/kernel_app.xml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/doc/src/kernel_app.xml')
-rw-r--r--lib/kernel/doc/src/kernel_app.xml348
1 files changed, 348 insertions, 0 deletions
diff --git a/lib/kernel/doc/src/kernel_app.xml b/lib/kernel/doc/src/kernel_app.xml
new file mode 100644
index 0000000000..bf513b7815
--- /dev/null
+++ b/lib/kernel/doc/src/kernel_app.xml
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE appref SYSTEM "appref.dtd">
+
+<appref>
+ <header>
+ <copyright>
+ <year>1996</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>kernel</title>
+ <prepared></prepared>
+ <docno></docno>
+ <date></date>
+ <rev></rev>
+ </header>
+ <app>kernel</app>
+ <appsummary>The Kernel Application</appsummary>
+ <description>
+ <p>The Kernel application is the first application started. It is
+ mandatory in the sense that the minimal system based on
+ Erlang/OTP consists of Kernel and STDLIB. The Kernel application
+ contains the following services:</p>
+ <list type="bulleted">
+ <item>application controller, see <c>application(3)</c></item>
+ <item><c>code</c></item>
+ <item><c>disk_log</c></item>
+ <item><c>dist_ac</c>, distributed application controller</item>
+ <item><c>erl_boot_server</c></item>
+ <item><c>erl_ddll</c></item>
+ <item><c>error_logger</c></item>
+ <item><c>file</c></item>
+ <item><c>global</c></item>
+ <item><c>global_group</c></item>
+ <item><c>heart</c></item>
+ <item><c>inet</c></item>
+ <item><c>net_kernel</c></item>
+ <item><c>os</c></item>
+ <item><c>pg2</c></item>
+ <item><c>rpc</c></item>
+ <item><c>seq_trace</c></item>
+ <item><c>user</c></item>
+ </list>
+ </description>
+
+ <section>
+ <title>Error Logger Event Handlers</title>
+ <p>Two standard error logger event handlers are defined in
+ the Kernel application. These are described in
+ <seealso marker="error_logger">error_logger(3)</seealso>.</p>
+ </section>
+
+ <section>
+ <title>Configuration</title>
+ <p>The following configuration parameters are defined for the Kernel
+ application. See <c>app(3)</c> for more information about
+ configuration parameters.</p>
+ <taglist>
+ <tag><c>browser_cmd = string() | {M,F,A}</c></tag>
+ <item>
+ <p>When pressing the Help button in a tool such as Debugger or
+ TV, the help text (an HTML file <c>File</c>) is by default
+ displayed in a Netscape browser which is required to be up and
+ running. This parameter can be used to change the command for
+ how to display the help text if another browser than Netscape
+ is preferred, or another platform than Unix or Windows is
+ used.</p>
+ <p>If set to a string <c>Command</c>, the command
+ <c>"Command File"</c> will be evaluated using <c>os:cmd/1</c>.</p>
+ <p>If set to a module-function-args tuple <c>{M,F,A}</c>,
+ the call <c>apply(M,F,[File|A])</c> will be evaluated.</p>
+ </item>
+ <tag><c>distributed = [Distrib]</c></tag>
+ <item>
+ <p>Specifies which applications are distributed and on which
+ nodes they may execute. In this parameter:</p>
+ <list type="bulleted">
+ <item><c>Distrib = {App,Nodes} | {App,Time,Nodes}</c></item>
+ <item><c>App = atom()</c></item>
+ <item><c>Time = integer()>0</c></item>
+ <item><c>Nodes = [node() | {node(),...,node()}]</c></item>
+ </list>
+ <p>The parameter is described in <c>application(3)</c>, function
+ <c>load/2</c>.</p>
+ </item>
+ <tag><c>dist_auto_connect = Value</c></tag>
+ <item>
+ <p>Specifies when nodes will be automatically connected. If
+ this parameter is not specified, a node is always
+ automatically connected, e.g when a message is to be sent to
+ that node. <c>Value</c> is one of:</p>
+ <taglist>
+ <tag><c>never</c></tag>
+ <item>Connections are never automatically connected, they
+ must be explicitly connected. See <c>net_kernel(3)</c>.</item>
+ <tag><c>once</c></tag>
+ <item>Connections will be established automatically, but only
+ once per node. If a node goes down, it must thereafter be
+ explicitly connected. See <c>net_kernel(3)</c>.</item>
+ </taglist>
+ </item>
+ <tag><c>permissions = [Perm]</c></tag>
+ <item>
+ <p>Specifies the default permission for applications when they
+ are started. In this parameter:</p>
+ <list type="bulleted">
+ <item><c>Perm = {ApplName,Bool}</c></item>
+ <item><c>ApplName = atom()</c></item>
+ <item><c>Bool = boolean()</c></item>
+ </list>
+ <p>Permissions are described in <c>application(3)</c>, function
+ <c>permit/2</c>.</p>
+ </item>
+ <tag><c>error_logger = Value</c></tag>
+ <item>
+ <p><c>Value</c> is one of:</p>
+ <taglist>
+ <tag><c>tty</c></tag>
+ <item>Installs the standard event handler which prints error
+ reports to <c>stdio</c>. This is the default option.</item>
+ <tag><c>{file, FileName}</c></tag>
+ <item>Installs the standard event handler which prints error
+ reports to the file <c>FileName</c>, where <c>FileName</c>
+ is a string.</item>
+ <tag><c>false</c></tag>
+ <item>
+ <p>No standard event handler is installed, but
+ the initial, primitive event handler is kept, printing
+ raw event messages to tty.</p>
+ </item>
+ <tag><c>silent</c></tag>
+ <item>
+ <p>Error logging is turned off.</p>
+ </item>
+ </taglist>
+ </item>
+ <tag><c>global_groups = [GroupTuple]</c></tag>
+ <item>
+ <p>Defines global groups, see <c>global_group(3)</c>.</p>
+ <list type="bulleted">
+ <item><c>GroupTuple = {GroupName, [Node]} | {GroupName, PublishType, [Node]}</c></item>
+ <item><c>GroupName = atom()</c></item>
+ <item><c>PublishType = normal | hidden</c></item>
+ <item><c>Node = node()</c></item>
+ </list>
+ </item>
+ <tag><c>inet_default_connect_options = [{Opt, Val}]</c></tag>
+ <item>
+ <p>Specifies default options for <c>connect</c> sockets,
+ see <c>inet(3)</c>.</p>
+ </item>
+ <tag><c>inet_default_listen_options = [{Opt, Val}]</c></tag>
+ <item>
+ <p>Specifies default options for <c>listen</c> (and
+ <c>accept</c>) sockets, see <c>inet(3)</c>.</p>
+ </item>
+ <tag><c>{inet_dist_use_interface, ip_address()}</c></tag>
+ <item>
+ <p>If the host of an Erlang node has several network interfaces,
+ this parameter specifies which one to listen on. See
+ <c>inet(3)</c> for the type definition of <c>ip_address()</c>.</p>
+ </item>
+ <tag><c>{inet_dist_listen_min, First}</c></tag>
+ <item>
+ <p>See below.</p>
+ </item>
+ <tag><c>{inet_dist_listen_max, Last}</c></tag>
+ <item>
+ <p>Define the <c>First..Last</c> port range for the listener
+ socket of a distributed Erlang node.</p>
+ </item>
+ <tag><c>inet_parse_error_log = silent</c></tag>
+ <item>
+ <p>If this configuration parameter is set, no
+ <c>error_logger</c> messages are generated when erroneous
+ lines are found and skipped in the various Inet configuration
+ files.</p>
+ </item>
+ <tag><c>inetrc = Filename</c></tag>
+ <item>
+ <p>The name (string) of an Inet user configuration file. See
+ ERTS User's Guide, Inet configuration.</p>
+ </item>
+ <tag><c>net_setuptime = SetupTime</c></tag>
+ <item>
+ <marker id="net_setuptime"></marker>
+ <p><c>SetupTime</c> must be a positive integer or floating point
+ number, and will be interpreted as the maximally allowed time
+ for each network operation during connection setup to another
+ Erlang node. The maximum allowed value is 120; if higher values
+ are given, 120 will be used. The default value if the variable
+ is not given, or if the value is incorrect (e.g. not a number),
+ is 7 seconds.</p>
+ <p>Note that this value does not limit the total connection
+ setup time, but rather each individual network operation during
+ the connection setup and handshake.</p>
+ </item>
+ <tag><c>net_ticktime = TickTime</c></tag>
+ <item>
+ <marker id="net_ticktime"></marker>
+ <p>Specifies the <c>net_kernel</c> tick time. <c>TickTime</c>
+ is given in seconds. Once every <c>TickTime/4</c> second, all
+ connected nodes are ticked (if anything else has been written
+ to a node) and if nothing has been received from another node
+ within the last four (4) tick times that node is considered
+ to be down. This ensures that nodes which are not responding,
+ for reasons such as hardware errors, are considered to be
+ down.</p>
+ <p>The time <c>T</c>, in which a node that is not responding is
+ detected, is calculated as: <c><![CDATA[MinT < T < MaxT]]></c> where:</p>
+ <code type="none">
+MinT = TickTime - TickTime / 4
+MaxT = TickTime + TickTime / 4</code>
+ <p><c>TickTime</c> is by default 60 (seconds). Thus,
+ <c><![CDATA[45 < T < 75]]></c> seconds.</p>
+ <p><em>Note:</em> All communicating nodes should have the same
+ <c>TickTime</c> value specified.</p>
+ <p><em>Note:</em> Normally, a terminating node is detected
+ immediately.</p>
+ </item>
+ <tag><c>sync_nodes_mandatory = [NodeName]</c></tag>
+ <item>
+ <p>Specifies which other nodes <em>must</em> be alive in order
+ for this node to start properly. If some node in the list
+ does not start within the specified time, this node will not
+ start either. If this parameter is undefined, it defaults to
+ [].</p>
+ </item>
+ <tag><c>sync_nodes_optional = [NodeName]</c></tag>
+ <item>
+ <p>Specifies which other nodes <em>can</em> be alive in order
+ for this node to start properly. If some node in this list
+ does not start within the specified time, this node starts
+ anyway. If this parameter is undefined, it defaults to
+ the empty list.</p>
+ </item>
+ <tag><c>sync_nodes_timeout = integer() | infinity</c></tag>
+ <item>
+ <p>Specifies the amount of time (in milliseconds) this node
+ will wait for the mandatory and optional nodes to start. If
+ this parameter is undefined, no node synchronization is
+ performed. This option also makes sure that <c>global</c> is
+ synchronized.</p>
+ </item>
+ <tag><c>start_dist_ac = true | false</c></tag>
+ <item>
+ <p>Starts the <c>dist_ac</c> server if the parameter is
+ <c>true</c>. This parameter should be set to <c>true</c> for
+ systems that use distributed applications.</p>
+ <p>The default value is <c>false</c>. If this parameter is
+ undefined, the server is started if the parameter
+ <c>distributed</c> is set.</p>
+ </item>
+ <tag><c>start_boot_server = true | false</c></tag>
+ <item>
+ <p>Starts the <c>boot_server</c> if the parameter is <c>true</c>
+ (see <c>erl_boot_server(3)</c>). This parameter should be
+ set to <c>true</c> in an embedded system which uses this
+ service.</p>
+ <p>The default value is <c>false</c>.</p>
+ </item>
+ <tag><c>boot_server_slaves = [SlaveIP]</c></tag>
+ <item>
+ <p>If the <c>start_boot_server</c> configuration parameter is
+ <c>true</c>, this parameter can be used to initialize
+ <c>boot_server</c> with a list of slave IP addresses.
+ <c>SlaveIP = string() | atom | {integer(),integer(),integer(),integer()}</c></p>
+ <p>where <c><![CDATA[0 <= integer() <=255]]></c>.</p>
+ <p>Examples of <c>SlaveIP</c> in atom, string and tuple form
+ are: <br></br>
+<c>'150.236.16.70', "150,236,16,70", {150,236,16,70}</c>.</p>
+ <p>The default value is <c>[]</c>.</p>
+ </item>
+ <tag><c>start_disk_log = true | false</c></tag>
+ <item>
+ <p>Starts the <c>disk_log_server</c> if the parameter is
+ <c>true</c> (see <c>disk_log(3)</c>). This parameter should be
+ set to true in an embedded system which uses this service.</p>
+ <p>The default value is <c>false</c>.</p>
+ </item>
+ <tag><c>start_pg2 = true | false</c></tag>
+ <item>
+ <p>Starts the <c>pg2</c> server (see <c>pg2(3)</c>) if
+ the parameter is <c>true</c>. This parameter should be set to
+ <c>true</c> in an embedded system which uses this service.</p>
+ <p>The default value is <c>false</c>.</p>
+ </item>
+ <tag><c>start_timer = true | false</c></tag>
+ <item>
+ <p>Starts the <c>timer_server</c> if the parameter is
+ <c>true</c> (see <c>timer(3)</c>). This parameter should be
+ set to <c>true</c> in an embedded system which uses this
+ service.</p>
+ <p>The default value is <c>false</c>.</p>
+ </item>
+ <tag><c>shutdown_func = {Mod, Func}</c></tag>
+ <item>
+ <p>Where:</p>
+ <list type="bulleted">
+ <item><c>Mod = atom()</c></item>
+ <item><c>Func = atom()</c></item>
+ </list>
+ <p>Sets a function that <c>application_controller</c> calls
+ when it starts to terminate. The function is called as:
+ <c>Mod:Func(Reason)</c>, where <c>Reason</c> is the terminate
+ reason for <c>application_controller</c>, and it must
+ return as soon as possible for <c>application_controller</c>
+ to terminate properly.</p>
+ </item>
+ </taglist>
+ </section>
+
+ <section>
+ <title>See Also</title>
+ <p><seealso marker="app">app(4)</seealso>,
+ <seealso marker="application">application(3)</seealso>,
+ <seealso marker="code">code(3)</seealso>,
+ <seealso marker="disk_log">disk_log(3)</seealso>,
+ <seealso marker="erl_boot_server">erl_boot_server(3)</seealso>,
+ <seealso marker="erl_ddll">erl_ddll(3)</seealso>,
+ <seealso marker="error_logger">error_logger(3)</seealso>,
+ <seealso marker="file">file(3)</seealso>,
+ <seealso marker="global">global(3)</seealso>,
+ <seealso marker="global_group">global_group(3)</seealso>,
+ <seealso marker="heart">heart(3)</seealso>,
+ <seealso marker="inet">inet(3)</seealso>,
+ <seealso marker="net_kernel">net_kernel(3)</seealso>,
+ <seealso marker="os">os(3)</seealso>,
+ <seealso marker="pg2">pg2(3)</seealso>,
+ <seealso marker="rpc">rpc(3)</seealso>,
+ <seealso marker="seq_trace">seq_trace(3)</seealso>,
+ <seealso marker="user">user(3)</seealso></p>
+ </section>
+</appref>
+