Man Linux: Main Page and Category List

NAME

       run_erl - Redirect Erlang input and output streams on Solaris®

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 Users 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/. 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.

SEE ALSO

       start_embedded(1)