FCGI::...Manager(3pm)

πŸ“¦
version 0.22 Β· 2 versions
  • 0.22 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking (latest)
  • 0.22 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– FCGI::Engine::Manager πŸ’–

okay so bestie, welcome to the FCGI::Engine::Manager page β€” it's a Perl module (from the User Contributed Perl Documentation, iykyk) and it's literally here to manage multiple FCGI::Engine instances for you. slay. let's get into it ✨


✨ NAME ✨

FCGI::Engine::Manager β€” manage multiple FCGI::Engine instances πŸŽ€


🌸 SYNOPSIS 🌸

here's the vibe, bestie:

#!/usr/bin/perl

my $m = FCGI::Engine::Manager->new(
    conf => 'conf/my_app_conf.yml'
);

my ($command, $server_name) = @ARGV;

$m->start($server_name)        if $command eq 'start';
$m->stop($server_name)         if $command eq 'stop';
$m->restart($server_name)      if $command eq 'restart';
$m->graceful($server_name)     if $command eq 'graceful';
print $m->status($server_name) if $command eq 'status';

# on the command line

perl all_my_fcgi_backends.pl start
perl all_my_fcgi_backends.pl stop
perl all_my_fcgi_backends.pl restart foo.server
# etc ...

πŸ¦‹ DESCRIPTION πŸ¦‹

so this module handles multiple FCGI::Engine instances for you β€” it can start, stop, and give you basic status info. it's configurable using Config::Any, but ngl, only really the YAML format has actually been tested. πŸ™ˆ

πŸ’œ Use with Catalyst

since FCGI::Engine is pretty much compatible with Catalyst::Engine::FastCGI, this module can also be used to manage your Catalyst::Engine::FastCGI based apps as well as your FCGI::Engine based apps. main character energy fr fr πŸ‘‘

🧚 Use with Plack

Plack support is provided via the FCGI::Engine::Manager::Server::Plackup module. all that's required is setting the "server_class" parameter in the configuarion and it will Just Work. ✨


πŸ“ EXAMPLE CONFIGURATION πŸ“

here's an example configuration in YAML, bestie. it should be noted that the options for each server are basically the constructor params to FCGI::Engine::Manager::Server and are passed verbatim to it. this means that if you subclass FCGI::Engine::Manager::Server and set the "server_class:" option appropriately, it should pass any new options you added to your subclass automatically. the third server in the list shows exactly how this is used with a Plack application. πŸ’…

---
- name:            "foo.server"
  server_class:    "FCGI::Engine::Manager::Server"
  scriptname:      "t/scripts/foo.pl"
  nproc:            1
  pidfile:         "/tmp/foo.pid"
  socket:          "/tmp/foo.socket"
  additional_args: [ "-I", "lib/" ]
- name:       "bar.server"
  scriptname: "t/scripts/bar.pl"
  nproc:       1
  pidfile:    "/tmp/bar.pid"
  socket:     "/tmp/bar.socket"
- name:            "baz.server"
  server_class:    "FCGI::Engine::Manager::Server::Plackup"
  scriptname:      "t/scripts/baz.psgi" # the .psgi file
  nproc:            1
  pidfile:         "/tmp/baz.pid"
  socket:          "/tmp/baz.socket"
  additional_args: [ "-E", "production" ] # plackup specific option

πŸ’€ BUGS πŸ’€

all complex software has bugs lurking in it, and this module is no exception. if you find a bug please either email me, or add the bug to cpan-RT. 🫢


πŸ‘‘ AUTHOR πŸ‘‘

Stevan Little <stevan@iinteractive.com>


Copyright 2007-2010 by Infinity Interactive, Inc.

<http://www.iinteractive.com>

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


and that's the whole page, bestie πŸŽ€ this was perl v5.36.0, dated 2022-12-10, from the FCGI::...Manager(3pm) manual β€” go forth and manage those backends, you absolute icon πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from