run_erl
(1)
Name
run_erl - Redirect Erlang input and output streams on
Solaris(R)
Synopsis
Please see following description for synopsis
Description
User Commands run_erl(1)
NAME
run_erl - Redirect Erlang input and output streams on
Solaris(R)
DESCRIPTION
This describes the run_erl program specific to
Solaris/Linux. This program redirect the standard input and
standard output streams so that all output can be logged. It
also let the program to_erl connect to the Erlang console
making it possible to monitor and debug an embedded system
remotely.
You can read more about the use in the Embedded System
User's Guide.
EXPORTS
run_erl [-daemon] pipe_dir/ log_dir "exec command [com-
mand_arguments]"
The run_erl program arguments are:
-daemon:
This option is highly recommended. It makes run_erl
run in the background completely detached from any
controlling terminal and the command returns to the
caller immediately. Without this option, run_erl
must be started using several tricks in the shell
to detach it completely from the terminal in use
when starting it. The option must be the first
argument to run_erl on the command line.
pipe_dir:
This is where to put the named pipe, usually /tmp/.
It shall be suffixed by a / (slash), i.e. not
/tmp/epipies, but /tmp/epipes/.
log_dir:
This is where the log files are written. There will
be one log file, run_erl.log that log progress and
warnings from the run_erl program itself and there
will be up to five log files at maximum 100KB each
(both number of logs and sizes can be changed by
environment variables, see below) with the content
of the standard streams from and to the command.
When the logs are full run_erl will delete and re-
use the oldest log file.
"exec command [command_arguments]":
In the third argument command is the to execute
where everything written to stdin and stdout is
logged to log_dir.
Ericsson AB Last change: erts 5.9.3.1 1
User Commands run_erl(1)
NOTES CONCERNING THE LOG FILES
While running, run_erl (as stated earlier) sends all output,
uninterpreted, to a log file. The file is called
erlang.log.N, where N is a number. When the log is "full",
default after 100KB, run_erl starts to log in file
erlang.log.(N+1), until N reaches a certain number (default
5), where after N starts at 1 again and the oldest files
start getting overwritten. If no output comes from the
erlang shell, but the erlang machine still seems to be
alive, an "ALIVE" message is written to the log, it is a
timestamp and is written, by default, after 15 minutes of
inactivity. Also, if output from erlang is logged but it's
been more than 5 minutes (default) since last time we got
anything from erlang, a timestamp is written in the log. The
"ALIVE" messages look like this:
===== ALIVE <date-time-string>
while the other timestamps look like this:
===== <date-time-string>
The date-time-string is the date and time the message is
written, default in local time (can be changed to GMT if one
wants to) and is formatted with the ANSI-C function strftime
using the format string %a %b %e %T %Z %Y, which produces
messages on the line of ===== ALIVE Thu May 15 10:13:36 MEST
2003, this can be changed, see below.
ENVIRONMENT VARIABLES
The following environment variables are recognized by
run_erl and change the logging behavior. Also see the notes
above to get more info on how the log behaves.
RUN_ERL_LOG_ALIVE_MINUTES:
How long to wait for output (in minutes) before writing
an "ALIVE" message to the log. Default is 15, can never
be less than 1.
RUN_ERL_LOG_ACTIVITY_MINUTES:
How long erlang need to be inactive before output will
be preceded with a timestamp. Default is
RUN_ERL_LOG_ALIVE_MINUTES div 3, but never less than 1.
RUN_ERL_LOG_ALIVE_FORMAT:
Specifies another format string to be used in the strf-
time C library call. i.e specifying this to "%e-%b-%Y,
%T %Z" will give log messages with timestamps looking
like 15-May-2003, 10:23:04 MET etc. See the documenta-
tion for the C library function strftime for more
Ericsson AB Last change: erts 5.9.3.1 2
User Commands run_erl(1)
information. Default is "%a %b %e %T %Z %Y".
RUN_ERL_LOG_ALIVE_IN_UTC:
If set to anything else than "0", it will make all times
displayed by run_erl to be in UTC (GMT,CET,MET, without
DST), rather than in local time. This does not affect
data coming from erlang, only the logs output directly
by run_erl. The application sasl can be modified accord-
ingly by setting the erlang application variable utc_log
to true.
RUN_ERL_LOG_GENERATIONS:
Controls the number of log files written before older
files are being reused. Default is 5, minimum is 2, max-
imum is 1000.
RUN_ERL_LOG_MAXSIZE:
The size (in bytes) of a log file before switching to a
new log file. Default is 100000, minimum is 1000 and
maximum is approximately 2^30.
RUN_ERL_DISABLE_FLOWCNTRL:
If defined, disables input and output flow control for
the pty opend by run_erl. Useful if you want to remove
any risk of accidentally blocking the flow control by
hit Ctrl-S (instead of Ctrl-D to detach). Which may
result in blocking of the entire beam process and in the
case of running heart as supervisor even the heart
process will be blocked when writing log message to ter-
minal. Leaving the heart process unable to do its work.
ATTRIBUTES
See attributes(5) for descriptions of the following
attributes:
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | runtime/erlang |
+---------------+------------------+
|Stability | Uncommitted |
+---------------+------------------+
SEE ALSO
start(1), start_erl(1)
NOTES
This software was built from source available at
https://java.net/projects/solaris-userland. The original
community source was downloaded from
http://www.erlang.org/download/otp_src_R15B03-1.tar.gz
Ericsson AB Last change: erts 5.9.3.1 3
User Commands run_erl(1)
Further information about this software can be found on the
open source community website at http://www.erlang.org/.
Ericsson AB Last change: erts 5.9.3.1 4