man: can't set the locale; make sure $LC_* and $LANG are correct
YAWS(1)                          User Commands                         YAWS(1)



NAME
       yaws - yet another webserver

SYNOPSIS
       yaws [OPTIONS]

DESCRIPTION
       Yaws is fast lightweight webserver. It can run as daemon or in interac-
       tive mode where it is possible to directly interact with the webserver.
       Yaws  is  particularly good at generating dynamic content. See the user
       docs for more information on that topic.


DAEMON/SERVER options
       -i | --interactive
              Interactive mode. This will start yaws in interactive mode  with
              an  erlang  prompt. All error_logger messages will be written to
              the tty as well in this mode.  Use  this  when  developing  yaws
              code.

       -w | --winteractive
              Cygwin inteactive mode (werl)

       -D | --daemon
              Daemon mode. This will start yaws as a daemon.

       --heart
              This will cause the yaws system to be automatically restarted in
              case it should crash. This switch  also  requires  the  --daemon
              switch to be present.

       --heart-restart=C,T
              This controls the number of restarts in a given time period that
              heart tolerates before refusing to  restart  Yaws.  By  default,
              heart  allows  up to 5 restarts within a 60 second period before
              refusing to restart Yaws again.  This  option  allows  up  to  C
              restarts  in  T seconds instead. To allow infinite restarts, set
              both C and T to 0. This switch automatically enables the --heart
              switch.

       --debug
              Debug  mode.  This  will produce some auxiliary error output for
              some error conditions. It will also start the otp sasl  lib  for
              additional error printouts.

       --nodebug
              Non-debug mode. This is useful for running interactively via the
              -i option but without incurring  the  performance  penalties  of
              debug mode.


       --conf file
              Use a different configuration file than the default. If the con-
              figuration parameter config is set, yaws use it as default  con-
              figuration  file. Else, The default configuration file when run-
              ning as root is /etc/yaws/yaws.conf. When running as a non priv-
              iliged  user, yaws will search for its configuration file in the
              following order. First in $HOME/yaws.conf, then  in  ./yaws.conf
              and finally in /etc/yaws/yaws.conf.

       --runmod module
              Tells yaws to call module:start/0 at startup. This makes it pos-
              sible to startup user specific applications together with yaws.


       --pa path
              Add path to the yaws system search path


       --tracetraf
              Traffic trace mode. All traffic will be written to a trace  file
              called trace.traffic in the log directory.


       --tracehttp
              HTTP  trace  mode.  All HTTP messages will be written to a trace
              file called trace.http in the log directory.


       --traceout
              When yaws is put into trace mode  using  either  --tracetraf  or
              --tracehttp,  traces  are  written  to  files. If we provide the
              --traceout flag, the trace will also be written to stdout.


       --trace
              Sames as --tracetraf --traceout. I.e. trace everything and write
              to stdout.


       --mnesiadir dir
              Start Mnesia in directory 


       --sname xxx
              Start  yaws  as  a distributed erlang node with name  using
              the unqualified hostname as nodename postfix


       --disable-kpoll
              By default, yaws starts erlang with +K true. This flag  reverses
              that.


       --name xxx
              Start  yaws  as  a distributed erlang node with name  using
              the fully qualified hostname as nodename postfix


       --proto_dist Mod
              Use module Mod for erlang distribution. This is  typically  only
              used when we want to run erlang distribution over SSL.


       --erlarg STRING
              Pass  STRING  as an additional argument to the "erl" program. If
              STRING comprises multiple words, you must quote it so that  your
              shell passes it to yaws as a single argument. If STRING contains
              any single quote characters, you must  quote  each  of  them  as
              well.  For  example,  to  pass  the option -env NAME O'Keeffe to
              "erl" from a Bourne-compatible shell:

                           --erlarg "-env NAME O\'Keeffe"


       --id ID
              This flag sets the id. If we're starting a daemon (or an  inter-
              active  system)  it  gives the Yaws server the identity ID. This
              means that the server will write all  internal  files  into  the
              directory $HOME/.yaws/yaws/ID.

              Yaws  also  creates  a file called $HOME/.yaws/yaws/ID/CTL which
              contains the portnumber the daemon is listening on  for  control
              request by the control command such as "yaws --hup" etc.

              If  we're  invoking  a control command which should perform some
              control function on the daemon, we may have  to  give  the  --id
              flag  also  to the control command. If we don't do this the con-
              trol command may interact with the wrong daemon due  to  finding
              the wrong "ctl" file.

              The daemon may also optionally specify the "id" in the yaws.conf
              configuration file.


       --umask MASK
              Set the umask for the daemon to MASK.


CONTROL OPTIONS
       The following list of options are are used to control the  daemon  from
       the "outside" while it is running.


       --hup [--id ID]
              HUP  the daemon. This forces the daemon to reread the configura-
              tion file.  It also makes the daemon empty all its internal con-
              tent  caches.  Hence when updating the doc root, HUPing the dae-
              mon is the fastest way to see the content updates.

       --stop [--id id]
              Stop the daemon (called id)

       --ls   Lists current ids and status of all yaws servers  on  localhost.
              In  practice this amounts to a listdir in $HOME/.yaws/yaws - and
              check whether the different systems who has created files  there
              are alive.

       --status [--id id]
              Query a running yaws daemon for its status, and print it.

       --stats [--id id]
              Query a running yaws daemon for its statistics, and print it.

       --running-config [--id id]
              Query  a  running yaws daemon for its current configuration, and
              print it.  This can be useful when attempting to figure out  how
              to  set config in embedded mode. Configure yaws to you liking in
              non-embedded mode, run this command and use the output to  popu-
              late the embedded mode records.

       --load Modules [--id id]
              Try  to  (re)load erlang modules into a running daemon.  This is
              useful after modifying appmods or modules used by scripts.


       --debug-dump  [--id id]
              Produce a debug dump on stdout. In particular  this  code  lists
              what  we  refer  to as suspicious processes. I.e. processes that
              might be hanging or processes that are "large"  -  hardcoded  to
              40k words.


       --ctltrace [--id ID] http | traffic | off
              Control  the trace capabilities of a running yaws daemon. If the
              http or traffic option is given, the daemon will write a log for
              debug purposes into the logdir.


       --wait-started[=T] [--id ID]
              Waits  at  most 30 seconds for the server to start. Exits with 0
              if server is running, 1  otherwise.  Typically  useful  in  test
              scripts.  The default 30 seconds can be modified by appending =T
              to the option, where T is the desired number of seconds to  wait
              for the server to start.


MISC OPTIONS
       --check YawsFile [IncDirs ....]
              Test compile a `.yaws' file. Useful in Makefiles when we want to
              ensure that all .yaws files are syntactically correct

       --version
              output version information and exit


ENVIRONMENT VARIABLES
       HOME   Is used to determine where we  write  the  temporary  files.  By
              default  all  tmp files end up in $HOME/.yaws. This includes the
              JIT files that are the result of processed .yaws files and  also
              the  so  called control file that is used by the daemon to write
              the port number to which it is listening  for  control  commands
              such as "yaws --status"

              Thus  HOME  is the handle we use in the control commands to find
              the control file so that we know where to connect to.


       YAWSHOME
              Can be used to override the HOME variable. This is  useful  when
              we for example are running yaws under port binding programs such
              as authpriv.

              It's useful by distros that don't want Yaws to write  any  files
              ever in the HOME directory of root.




AUTHOR
       Written by Claes Wikstrom

SEE ALSO
       yaws.conf(5) erl(1)



                                                                       YAWS(1)