Re: webserver in PHP

From: Date: Mon, 01 Apr 2002 22:29:25 +0000
Subject: Re: webserver in PHP
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-82009@lists.php.net to get a copy of this message
On Mon, 2002-04-01 at 10:58, Daniel Lorch wrote: > I am writing a "server/daemon framework" which should eventually allow > PHP developers to quickly create a server. You should look at the > "quoted.php" to see how easy this actually is. The framework does all > the dirty work in the background (forking off new children, managing > connections ..) and this is exactly the point where I have a problem: Neat project! > how do I manage my child processes? My workaround is > to pcntl_signal(SIGCHLD, SIG_IGN); , but I actually want to keep track > of my childern (to limit the number of connections). Whenever I get a > SIGCHLD from a child process, how the hell should I know what PID > it came from? Should I just keep a list of processes and poll them > from time to time? There are many methods to accomplish child management. One method does involve polling. A better way to do the method that you are trying to to do is to set a signal handler for SIGCHLD that waits on a pid of -1 (This means grab any child with a status change) ex. R function child_wait($signo) { $pid=waitpid(-1, $status, $options); if (pcntl_wifexited($status)) print "$pid exited!\n"; } pcntl_signal(SIGCHLD, "child_wait"); This will effectively prevent zombies. > > there is a working demo for the next couple of hours (until I switch > off the machine): > > http://212.254.248.130/ Neat! > > Daniel Lorch > -Jason

« previous php.dev (#82009) next »