RE: [PHP] process creation



Hi Török.

My test code had/has something similar.. but it kept displaying zombie processes as well as legitimate processes in the ps tbl/display...

Turns out I had a mistake in the test "client" ap/process that I was creating... This was causing the child process to die, resulting in a "zombie" process, until the parent got around to doing a waitpid call...

i think it's ok now...

thanks

ps, torok... are you in the US/Canada? Also, are you up to talking to me about this project that I'm playing with?



-----Original Message-----
From: Török Alpár [mailto:torokalpar@xxxxxxxxx]
Sent: Friday, January 23, 2009 10:09 AM
To: bruce
Cc: php-general@xxxxxxxxxxxxx
Subject: Re: [PHP] process creation


2009/1/23 bruce <bedouglas@xxxxxxxxxxxxx>

A simple question (or so I thought).

Does php allow an app to create/start a process/application that can
continue to run on its own, after the initiating program/app terminates?

It appears that the spawning/forking functions might work, but the child
apps would be in a zombie status, and couldn't be killed by an external
program.

Basically, I'd like to create a bunch of test apps/processes, and then to
be
able to kill them by a separate process if the apps take too long to run..

You can have the parent sleep, and then clean up like :

$aPids = array();
for ($i=0;$i<CHILDREN_NUMBER;++$i)
{
if ( $iPid = pcntl_fork() == 0)
{
// children code

exit(0);
}
else
{
// parent code
$aPids[] = $iPid;
}
}

// the parent sleeps
sleep(MAX_EXECUTION_OF_CHILDREN);

for ($i=0;$i<CHILDREN_NUMBER;++$i)
{
// check how the child is doing
$iPid = int *pcntl_waitpid* ( $aChildren[$i], $iStatus , WNOHANG);

if ($iPid == -1)
{
// oh these children ... newer doing what they should
posix_kill($aChildren[$i]);
}

}

this would also take care of zombies.



So.. thoughts/comments would be appreciated!

thanks



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




--
Torok, Alpar Istvan

.