Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

How the Pre-Forking Server Problem was Solved

by aijin (Monk)
on Oct 26, 2001 at 19:19 UTC ( #121643=perlquestion: print w/ replies, xml ) Need Help??
aijin has asked for the wisdom of the Perl Monks concerning the following question:

Thanks to the most appreciated help from a few of you, I've finally solved my pre-forking server problem. Here's what I did.

# just a snippit my $kidpid; die "can't fork: $!\n" unless defined($kidpid = fork()); if ($kidpid) { # parent code # insert the preforking server in here on port 4321 } else { # child code my $server = IO::Socket::INET->new(LocalPort=>1234, Type=>SOCK_STREAM, Proto=>"tcp", Reuse=>1, Listen=>10 ) or die "making socket: $@\n"; while(1) { my $kclient = $cserver->accept(); while (defined (my $buf = <$kclient>)) { # code for killing goes here } } }
What it does is this: The program forks; the parent process goes on to be the pre-forking server on port 4321 and the child process becomes a server listening to port 1234 for kill requests.

I didn't see this solution immediately myself, so hopefully this post will save another monk from frustration.

-aijin

Comment on How the Pre-Forking Server Problem was Solved
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://121643]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (12)
As of 2015-07-06 15:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (77 votes), past polls