EnglishFrenchSpanish

OnWorks favicon

run_erl - Online in the Cloud

Run run_erl in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command run_erl that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

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 [command_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/ on Unix or /pipe/ on OSE. 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 reuse 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.

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 strftime 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 documentation for the C library function
strftime for more 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 accordingly 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, maximum 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 terminal. Leaving the heart process unable to do
its work.

Use run_erl online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

Linux commands

Ad