man pages section 1: User Commands

Exit Print View

Updated: July 2014
 
 

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