Provided by: rainbows_4.5.0-2_all bug

NAME

       rainbows - rackup-like command to launch Rainbows!

SYNOPSIS

       rainbows [-c CONFIG_FILE] [-E RACK_ENV] [-D] [RACKUP_FILE]

DESCRIPTION

       A  rackup(1)-like  command to launch Rack applications using Rainbows!.  It is expected to
       be started in your application root (APP_ROOT), but the “working_directory” directive  may
       be used in the CONFIG_FILE.

       While  Rainbows! takes a myriad of command-line options for compatibility with ruby(1) and
       rackup(1), it is recommended to stick to the few command-line  options  specified  in  the
       SYNOPSIS and use the CONFIG_FILE as much as possible.

RACKUP FILE

       This  defaults  to  "config.ru" in APP_ROOT.  It should be the same file used by rackup(1)
       and other Rack launchers, it uses the Rack::Builder DSL.

       Embedded command-line options are mostly  parsed  for  compatibility  with  rackup(1)  but
       strongly discouraged.

UNICORN OPTIONS

       -c, --config-file CONFIG_FILE
              Path to the Unicorn-specific config file.  The config file is implemented as a Ruby
              DSL, so Ruby code may executed.  See  the  RDoc/ri  for  the  Unicorn::Configurator
              class for the full list of directives available from the DSL.

       -D, --daemonize
              Run  daemonized  in  the  background.  The process is detached from the controlling
              terminal and stdin is redirected to “/dev/null”.  Unlike many common UNIX  daemons,
              we  do  not  chdir  to  "/"  upon  daemonization  to  allow  more  control over the
              startup/upgrade process.  Unless specified in the CONFIG_FILE,  stderr  and  stdout
              will also be redirected to “/dev/null”.

       -E, --env RACK_ENV
              Run under the given RACK_ENV.  See the RACK ENVIRONMENT section for more details.

       -l, --listen ADDRESS
              Listens  on  a  given  ADDRESS.   ADDRESS  may be in the form of HOST:PORT or PATH,
              HOST:PORT is taken to mean a TCP socket and PATH is meant to be a path  to  a  UNIX
              domain  socket.   Defaults  to  “0.0.0.0:8080” (all addresses on TCP port 8080) For
              production  deployments,  specifying  the  “listen”  directive  in  CONFIG_FILE  is
              recommended as it allows fine-tuning of socket options.

RACKUP COMPATIBILITY OPTIONS

       -o, --host HOST
              Listen on a TCP socket belonging to HOST, default is “0.0.0.0” (all addresses).  If
              specified multiple times on the command-line, only the last-specified  value  takes
              effect.   This option only exists for compatibility with the rackup(1) command, use
              of “-l”/“--listen” switch is recommended instead.

       -p, --port PORT
              Listen on the specified TCP PORT, default is 8080.  If specified multiple times  on
              the  command-line,  only  the  last-specified value takes effect.  This option only
              exists for compatibility with the rackup(1) command, use of “-l”/“--listen”  switch
              is recommended instead.

       -s, --server SERVER
              No-op, this exists only for compatibility with rackup(1).

RUBY OPTIONS

       -e, --eval LINE
              Evaluate  a LINE of Ruby code.  This evaluation happens immediately as the command-
              line is being parsed.

       -d, --debug
              Turn on debug mode, the $DEBUG variable is set to true.

       -w, --warn
              Turn on verbose warnings, the $VERBOSE variable is set to true.

       -I, --include PATH
              specify $LOAD_PATH.  PATH will be prepended to $LOAD_PATH.  The ':'  character  may
              be  used  to  delimit  multiple  directories.  This directive may be used more than
              once.  Modifications to $LOAD_PATH take place immediately and  in  the  order  they
              were specified on the command-line.

       -r, --require LIBRARY
              require  a  specified  LIBRARY  before  executing  the  application.  The "require"
              statement will be executed immediately and in the order they were specified on  the
              command-line.

SIGNALS

       The following UNIX signals may be sent to the master process:

       • HUP - reload config file, app, and gracefully restart all workers

       • INT/TERM - quick shutdown, kills all workers immediately

       • QUIT  -  graceful  shutdown,  waits  for  workers to finish their current request before
         finishing.

       • USR1 - reopen all logs owned by the master and all workers See Unicorn::Util.reopen_logs
         for what is considered a log.

       • USR2  -  reexecute  the  running binary.  A separate QUIT should be sent to the original
         process once the child is verified to be up and running.

       • WINCH - gracefully stops workers but keep the master running.  This will only  work  for
         daemonized processes.

       • TTIN - increment the number of worker processes by one

       • TTOU - decrement the number of worker processes by one

       See the SIGNALS (http://rainbows.rubyforge.org/SIGNALS.html) document for full description
       of all signals used by Rainbows!.

RACK ENVIRONMENT

       Accepted values of RACK_ENV  and  the  middleware  they  automatically  load  (outside  of
       RACKUP_FILE) are exactly as those in rackup(1):

       • development - loads Rack::CommonLogger, Rack::ShowExceptions, and Rack::Lint middleware

       • deployment - loads Rack::CommonLogger middleware

       • none - loads no middleware at all, relying entirely on RACKUP_FILE

       All unrecognized values for RACK_ENV are assumed to be “none”.  Production deployments are
       strongly encouraged to use “deployment” or “none” for maximum performance.

       Note that the Rack::ContentLength  and  Rack::Chunked  middlewares  are  never  loaded  by
       default.   If  needed,  they  should  be  individually  specified in the RACKUP_FILE, some
       frameworks do not require them.

SEE ALSO

unicorn(1)

       • Rack::Builder ri/RDoc

       • Unicorn::Configurator ri/RDoc

       • Rainbows! RDoc (http://rainbows.rubyforge.org/)

       • Rack RDoc (http://rack.rubyforge.org/doc/)

       • Rackup HowTo (http://wiki.github.com/rack/rack/tutorial-rackup-howto)

AUTHOR

       Rainbows! Hackers <rainbows-talk@rubyforge.org>