The Kernel application has all the code necessary to run the Erlang runtime system: file servers, code servers, and so on.
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. Kernel contains the following functional areas:
Two standard logger handlers are defined in
the Kernel application. These are described in the
Asynchronous OS signals may be subscribed to via the Kernel applications event manager
(see
The default handler will halt Erlang and produce a crashdump
with slogan "Received SIGUSR1".
This is equivalent to calling
The default handler will halt Erlang immediately.
This is equivalent to calling
The default handler will terminate Erlang normally.
This is equivalent to calling
Any event handler added to
Hangup detected on controlling terminal or death of controlling process
Quit from keyboard
Abort signal from abort
Timer signal from alarm
Termination signal
User-defined signal 1
User-defined signal 2
Child process stopped or terminated
Stop process
Stop typed at terminal
Setting OS signals are described in
The following configuration parameters are defined for the Kernel
application. For more information about configuration parameters,
see file
When pressing the Help button in a tool such as Debugger,
the help text (an HTML file
If set to a string
If set to a module-function-args tuple,
Specifies which applications that are distributed and on which nodes they are allowed to execute. In this parameter:
The parameter is described in
Specifies when nodes are automatically connected. If
this parameter is not specified, a node is always
automatically connected, for example, when a message is to be sent to
that node.
Connections are never automatically established, they
must be explicitly connected. See
Connections are established automatically, but only
once per node. If a node goes down, it must thereafter be
explicitly connected. See
Specifies the default permission for applications when they are started. In this parameter:
Permissions are described in
Installs the standard handler,
Installs the standard handler,
Installs the disk_log handler,
No standard handler is installed, but
the initial, primitive handler is kept, printing
raw event messages to
No standard handler is started, and the initial, primitive handler is removed.
This parameter specifies which log levels to log. The specified level, and all levels that are more severe, will be logged.
This configuration parameter is used both for the global
logger level, and for the standard handler started by
the Kernel application (see
The default value is
If
The default values are:
logger_disk_log_type = wrap
logger_disk_log_maxfiles = 10
logger_disk_log_maxbytes = 1048576
If this parameter is set to true, then the logger handler
started by kernel will not log any progress-, crash-, or
supervisor reports. If the SASL application is starated,
these log events will be sent to a second handler instance
named sasl_h, according to values of the SASL environment
variables
The default value is
See chapter
If
If
Can be used to limit the size of the formatted output from the logger handlers.
This configuration parameter was introduced in OTP 18.1 and is experimental. Based on user feedback, it can be changed or improved in future releases, for example, to gain better control over how to limit the size of the formatted output. We have no plans to remove this new feature entirely, unless it turns out to be useless.
A reasonable starting value for
This parameter specifies the maximum size (bytes) each log event can have when printed by the standard logger handler. If the resulting string after formatting an event is bigger than this, it will be truncated before printed to the handler's destination.
If set to
Defines global groups, see
Specifies default options for
Specifies default options for
If the host of an Erlang node has many network interfaces,
this parameter specifies which one to listen on. For the type definition
of
Defines the
Defines a list of extra socket options to be used when opening the
listening socket for a distributed Erlang node.
See
Defines a list of extra socket options to be used when connecting to
other distributed Erlang nodes.
See
If set, no
The name (string) of an Inet user configuration file. For details,
see section
Notice that this value does not limit the total connection setup time, but rather each individual network operation during the connection setup and handshake.
Specifies the
The time
MinT = TickTime - TickTime / 4
MaxT = TickTime + TickTime / 4
Notice that all communicating nodes are to have the same
Normally, a terminating node is detected immediately.
Specifies the time
Specifies which other nodes that must be alive
for this node to start properly. If some node in the list
does not start within the specified time, this node does not
start either. If this parameter is undefined, it defaults to
Specifies which other nodes that can be alive 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.
Specifies the time (in milliseconds) that this node
waits for the mandatory and optional nodes to start. If
this parameter is undefined, no node synchronization is
performed. This option ensures that
Starts the
Defaults to
Starts the
Defaults to
If configuration parameter
where
Examples of
Defaults to
Starts the
Defaults to
Starts the
Defaults to
Starts the
Defaults to
Specifies whether shell history should be logged to disk
between usages of
Specific log lines that should not be persisted. For
example
how many bytes the shell should remember. By default, the value is set to 512kb, and the minimal value is 50kb.
Specifies where the shell history files will be stored.
defaults to the user's cache directory as returned by
Where:
Sets a function that
Where:
Specifies a list of rules for use by
The interpretation of
In OTP-21, a new API for logging was added to Erlang/OTP. The
old
The following application environment variables can still be set, but they will only be used if the corresponding new logger variables are not set.
See