start_server(1) a superdaemon for hot-deploying server programs

SYNOPSIS


start_server [options] -- server-prog server-arg1 server-arg2 ...
# start Plack using Starlet listening at TCP port 8000
start_server --port=8000 -- plackup -s Starlet --max-workers=100 index.psgi

DESCRIPTION

This script is a frontend of Server::Starter. For more information please refer to the documentation of the module.

OPTIONS

--port=(port|host:port|port=fd|host:port=fd)

TCP port to listen to (if omitted, will not bind to any ports)

If host is not specified, then the program will bind to the default address of IPv4 (``0.0.0.0''). Square brackets should be used to specify an IPv6 address (e.g. --port=[::1]:8080)

If fd is specified, then start_server allocates the socket at the given number.

--path=path

path at where to listen using unix socket (optional)

--dir=path

working directory, start_server do chdir to before exec (optional)

--interval=seconds

minimum interval to respawn the server program (default: 1)

--signal-on-hup=SIGNAL

name of the signal to be sent to the server process when start_server receives a SIGHUP (default: SIGTERM). If you use this option, be sure to also use "--signal-on-term" below.

--signal-on-term=SIGNAL

name of the signal to be sent to the server process when start_server receives a SIGTERM (default: SIGTERM)

--pid-file=filename

if set, writes the process id of the start_server process to the file

--status-file=filename

if set, writes the status of the server process(es) to the file

--envdir=ENVDIR

directory that contains environment variables to the server processes. It is intended for use with "envdir" in "daemontools". This can be overwritten by environment variable "ENVDIR".

--log-file=file

--log-file=| cmd args...

if set, redirects STDOUT and STDERR to given file or command

--daemonize

deamonizes the server (by doing fork,setsid,fork). Must be used together with "--log-file".

--enable-auto-restart

enables automatic restart by time. This can be overwritten by environment variable "ENABLE_AUTO_RESTART".

--auto-restart-interval=seconds

automatic restart interval (default 360). It is used with "--enable-auto-restart" option. This can be overwritten by environment variable "AUTO_RESTART_INTERVAL".

--kill-old-delay=seconds

time to suspend to send a signal to the old worker. The default value is 5 when "--enable-auto-restart" is set, 0 otherwise. This can be overwritten by environment variable "KILL_OLD_DELAY".

--backlog=size

specifies a listen backlog parameter, whose default is SOMAXCONN (usually 128 on Linux). While SOMAXCONN is enough for most loads, large backlog is required for heavy loads.

--restart

this is a wrapper command that reads the pid of the start_server process from --pid-file, sends SIGHUP to the process and waits until the server(s) of the older generation(s) die by monitoring the contents of the --status-file

--stop

this is a wrapper command that reads the pid of the start_server process from --pid-file, sends SIGTERM to the process.

--help

prints this help

--version

prints the version number

AUTHOR

Kazuho Oku

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.