1 package Catalyst::Script::FastCGI;
3 use MooseX::Types::Moose qw/Str Bool Int/;
5 use namespace::autoclean;
7 sub _plack_engine_name { 'FCGI' }
9 with 'Catalyst::ScriptRole';
12 traits => [qw(Getopt)],
16 documentation => 'Specify a listening port/socket',
20 traits => [qw(Getopt)],
21 cmd_aliases => [qw/pid p/],
24 documentation => 'Specify a pidfile',
28 traits => [qw(Getopt)],
31 cmd_aliases => [qw/d detach/], # Eww, detach is here as we fucked it up.. Deliberately not documented
32 documentation => 'Daemonize (go into the background)',
36 traits => [qw(Getopt)],
40 documentation => 'Use a different FastCGI process manager class',
44 traits => [qw(Getopt)],
48 documentation => 'Log STDERR',
52 traits => [qw(Getopt)],
56 documentation => 'Specify a number of child processes',
60 traits => [qw(Getopt)],
65 builder => '_build_proc_title',
66 documentation => 'Set the process title',
69 sub _build_proc_title {
71 return sprintf 'perl-fcgi-pm [%s]', $self->application_name;
79 sub _plack_loader_args {
82 map { $_->[0] => $self->${ \($_->[1] ? $_->[1]->[0] : $_->[0]) } }
83 Data::OptList::mkopt([
84 qw/pidfile listen manager nproc keep_stderr/,
85 detach => [ 'daemon' ],
86 proc_title => [ 'title' ],
91 sub _application_args {
96 nproc => $self->nproc,
97 pidfile => $self->pidfile,
98 manager => $self->manager,
99 detach => $self->daemon,
100 keep_stderr => $self->keeperr,
101 title => $self->title,
106 __PACKAGE__->meta->make_immutable;
110 Catalyst::Script::FastCGI - The FastCGI Catalyst Script
114 myapp_fastcgi.pl [options]
117 -? --help display this help and exits
118 -l --listen Socket path to listen on
119 (defaults to standard input)
120 can be HOST:PORT, :PORT or a
122 -n --nproc specify number of processes to keep
123 to serve requests (defaults to 1,
125 -p --pidfile specify filename for pid file
127 -d --daemon daemonize (requires -listen)
128 -M --manager specify alternate process manager
129 (FCGI::ProcManager sub-class)
130 or empty string to disable
131 -e --keeperr send error messages to STDOUT, not
133 -t --title set the process title
137 Run a Catalyst application as fastcgi.
141 Catalyst Contributors, see Catalyst.pm
145 This library is free software. You can redistribute it and/or modify it under
146 the same terms as Perl itself.