Artifact [a3d3970d83]

Artifact a3d3970d83cd76d8de449e7df46ae4eb749856f9:

Wiki page [App::Sv] by ggl 2013-08-31 13:03:08.
D 2013-08-31T13:03:08.712
L App::Sv
N text/x-markdown
P a5fa5f607a42e0011ae95f55daff52368a522d32
U ggl
W 1283
# SYNOPSIS

    my $sv = App::Sv->new(
        run => {
          x => 'plackup -p 3010 ./sites/x/app.psgi',
          y => {
            cmd => 'plackup -p 3011 ./sites/y/app.psgi'
            restart_delay => 1,
            start_retries => 5,
            umask => '027',
            user => 'www',
            group => 'www'
          },
        },
        global => {
          listen => '127.0.0.1:9999',
          daemon => 0,
          umask => '077'
        },
    );
    $sv->run;



# DESCRIPTION

This module implements a multi-process supervisor.

It takes a list of commands to execute and starts each one, and then monitors
their execution. If one of the programs dies, the supervisor will restart it
after start\_delay seconds. If a program respawns during start\_delay for
start\_retries times, the supervisor gives up and stops it indefinitely.

You can send SIGTERM to the supervisor process to kill all childs and exit.

You can also send SIGINT (Ctrl-C on your terminal) to restart the processes. If
a second SIGINT is received and no child process is currently running, the
supervisor will exit. This allows you to tap Ctrl-C twice in quick succession
in a terminal window to terminate the supervisor and all child processes
Z 096c222bde8b34c7a3d7659f3c10231d