1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
package Catalyst::Script::FastCGI;
BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' }
use Moose;
use MooseX::Types::Moose qw/Str Bool Int/;
use namespace::autoclean;
with 'Catalyst::ScriptRole';
has listen => (
traits => [qw(Getopt)],
cmd_aliases => 'l',
isa => Str,
is => 'ro',
documentation => 'Specify a listening port/socket',
);
has pidfile => (
traits => [qw(Getopt)],
cmd_aliases => [qw/pid p/],
isa => Str,
is => 'ro',
documentation => 'Specify a pidfile',
);
has daemon => (
traits => [qw(Getopt)],
isa => Bool,
is => 'ro',
cmd_aliases => [qw/d detach/], # Eww, detach is here as we fucked it up.. Deliberately not documented
documentation => 'Daemonize (go into the background)',
);
has manager => (
traits => [qw(Getopt)],
isa => Str,
is => 'ro',
cmd_aliases => 'M',
documentation => 'Use a different FastCGI process manager class',
);
has keeperr => (
traits => [qw(Getopt)],
cmd_aliases => 'e',
isa => Bool,
is => 'ro',
documentation => 'Log STDERR',
);
has nproc => (
traits => [qw(Getopt)],
cmd_aliases => 'n',
isa => Int,
is => 'ro',
documentation => 'Specify a number of child processes',
);
sub _application_args {
my ($self) = shift;
return (
$self->listen,
{
nproc => $self->nproc,
pidfile => $self->pidfile,
manager => $self->manager,
detach => $self->daemon,
keep_stderr => $self->keeperr,
}
);
}
__PACKAGE__->meta->make_immutable;
=head1 NAME
Catalyst::Script::FastCGI - The FastCGI Catalyst Script
=head1 SYNOPSIS
myapp_fastcgi.pl [options]
Options:
-? --help display this help and exits
-l --listen Socket path to listen on
(defaults to standard input)
can be HOST:PORT, :PORT or a
filesystem path
-n --nproc specify number of processes to keep
to serve requests (defaults to 1,
requires -listen)
-p --pidfile specify filename for pid file
(requires -listen)
-d --daemon daemonize (requires -listen)
-M --manager specify alternate process manager
(FCGI::ProcManager sub-class)
or empty string to disable
-e --keeperr send error messages to STDOUT, not
to the webserver
=head1 DESCRIPTION
Run a Catalyst application as fastcgi.
=head1 AUTHORS
Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
This library is free software. You can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
|