Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
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 drinking their drinks and smoking their pipes about the Monastery: (7)
As of 2014-08-02 04:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Who would be the most fun to work for?















    Results (54 votes), past polls