- initial package 0.19
* created by cpanspec 1.78.03 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-FCGI-ProcManager?expand=0&rev=1
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.osc
|
3
FCGI-ProcManager-0.19.tar.bz2
Normal file
3
FCGI-ProcManager-0.19.tar.bz2
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bcc65adda898fe50539bd1b7d2f6e94e7e423209172714117bc3ab2705ba47b7
|
||||
size 17022
|
6
perl-FCGI-ProcManager.changes
Normal file
6
perl-FCGI-ProcManager.changes
Normal file
@@ -0,0 +1,6 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 18 16:17:25 UTC 2011 - coolo@novell.com
|
||||
|
||||
- initial package 0.19
|
||||
* created by cpanspec 1.78.03
|
||||
|
125
perl-FCGI-ProcManager.spec
Normal file
125
perl-FCGI-ProcManager.spec
Normal file
@@ -0,0 +1,125 @@
|
||||
#
|
||||
# spec file for package perl-FCGI-ProcManager (Version 0.19)
|
||||
#
|
||||
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
Name: perl-FCGI-ProcManager
|
||||
Version: 0.19
|
||||
Release: 1
|
||||
License: CHECK(Distributable)
|
||||
%define cpan_name FCGI-ProcManager
|
||||
Summary: functions for managing FastCGI applications.
|
||||
Url: http://search.cpan.org/dist/FCGI-ProcManager/
|
||||
Group: Development/Libraries/Perl
|
||||
#Source: http://www.cpan.org/authors/id/G/GB/GBJK/FCGI-ProcManager-%{version}.tar.gz
|
||||
Source: %{cpan_name}-%{version}.tar.bz2
|
||||
BuildRequires: perl
|
||||
BuildRequires: perl-macros
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildArch: noarch
|
||||
%{perl_requires}
|
||||
|
||||
%description
|
||||
FCGI::ProcManager is used to serve as a FastCGI process manager. By
|
||||
re-implementing it in perl, developers can more finely tune performance in
|
||||
their web applications, and can take advantage of copy-on-write semantics
|
||||
prevalent in UNIX kernel process management. The process manager should be
|
||||
invoked before the caller''s request loop
|
||||
|
||||
The primary routine, 'pm_manage', enters a loop in which it maintains a
|
||||
number of FastCGI servers (via fork(2)), and which reaps those servers when
|
||||
they die (via wait(2)).
|
||||
|
||||
'pm_manage' provides too hooks:
|
||||
|
||||
C<managing_init> - called just before the manager enters the manager loop.
|
||||
C<handling_init> - called just before a server is returns from C<pm_manage>
|
||||
|
||||
It is necessary for the caller, when implementing its request loop, to
|
||||
insert a call to 'pm_pre_dispatch' at the top of the loop, and then
|
||||
7'pm_post_dispatch' at the end of the loop.
|
||||
|
||||
Signal Handling
|
||||
FCGI::ProcManager attempts to do the right thing for proper shutdowns
|
||||
now.
|
||||
|
||||
When it receives a SIGHUP, it sends a SIGTERM to each of its children,
|
||||
and then resumes its normal operations.
|
||||
|
||||
When it receives a SIGTERM, it sends a SIGTERM to each of its children,
|
||||
sets an alarm(3) "die timeout" handler, and waits for each of its
|
||||
children to die. If all children die before this timeout, process
|
||||
manager exits with return status 0. If all children do not die by the
|
||||
time the "die timeout" occurs, the process manager sends a SIGKILL to
|
||||
each of the remaining children, and exists with return status 1.
|
||||
|
||||
In order to get FastCGI servers to exit upon receiving a signal, it is
|
||||
necessary to use its FAIL_ACCEPT_ON_INTR. See FCGI.pm's description of
|
||||
FAIL_ACCEPT_ON_INTR. Unfortunately, if you want/need to use CGI::Fast,
|
||||
it appears currently necessary to modify your installation of FCGI.pm,
|
||||
with something like the following:
|
||||
|
||||
-*- patch -*-
|
||||
--- FCGI.pm 2001/03/09 01:44:00 1.1.1.3
|
||||
+++ FCGI.pm 2001/03/09 01:47:32 1.2
|
||||
@@ -24,7 +24,7 @@
|
||||
*FAIL_ACCEPT_ON_INTR = sub() { 1 };
|
||||
|
||||
sub Request(;***$$$) {
|
||||
- my @defaults = (\*STDIN, \*STDOUT, \*STDERR, \%ENV, 0, 0);
|
||||
+ my @defaults = (\*STDIN, \*STDOUT, \*STDERR, \%ENV, 0, FAIL_ACCEPT_ON_INTR());
|
||||
splice @defaults,0,@_,@_;
|
||||
RequestX(@defaults);
|
||||
}
|
||||
-*- end patch -*-
|
||||
|
||||
Otherwise, if you don't, there is a loop around accept(2) which
|
||||
prevents os_unix.c OS_Accept() from returning the necessary error when
|
||||
FastCGI servers blocking on accept(2) receive the SIGTERM or SIGHUP.
|
||||
|
||||
FCGI::ProcManager uses POSIX::sigaction() to override the default
|
||||
SA_RESTART policy used for perl's %SIG behavior. Specifically, the
|
||||
process manager never uses SA_RESTART, while the child FastCGI servers
|
||||
turn off SA_RESTART around the accept(2) loop, but re-enstate it
|
||||
otherwise.
|
||||
|
||||
The desired (and implemented) effect is to give a request as big a
|
||||
chance as possible to succeed and to delay their exits until after
|
||||
their request, while allowing the FastCGI servers waiting for new
|
||||
requests to die right away.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{cpan_name}-%{version}
|
||||
|
||||
%build
|
||||
%{__perl} Makefile.PL INSTALLDIRS=vendor
|
||||
%{__make} %{?_smp_mflags}
|
||||
|
||||
%check
|
||||
%{__make} test
|
||||
|
||||
%install
|
||||
%perl_make_install
|
||||
%perl_process_packlist
|
||||
%perl_gen_filelist
|
||||
|
||||
%clean
|
||||
%{__rm} -rf %{buildroot}
|
||||
|
||||
%files -f %{name}.files
|
||||
%defattr(644,root,root,755)
|
||||
%doc ChangeLog COPYING README TODO
|
||||
|
||||
%changelog
|
Reference in New Issue
Block a user