I needed to know when a group of background tasks, which had been launched with a call to system, had terminated.
I could not find a function to call, so I created a little function.
It basically loops on the existance of a string in the results returned by the command ps.
All my commands, which run in background have the pid returned by posix_getpid in them.
I am able to launch many background task and effectively wait for them all to finish.
Before this, I would basically would sleep for N seconds.
I apologise if a well known or better method exist.
Thanks,
The New Bee
===============
===============
function wait_until_termination ($id, $duration){
$i = 0;
do {
$i += 1;
$cnt = `ps -auxww |
grep $id |
grep -v grep |
awk '{print $2}' |
grep -v $id|
wc -l` ;
if ($cnt > 0) {
sleep ($duration);
}
} while ($cnt != 0);
echo ("wait_until_termination (PID: $id, SEC: $duration) : LOOPS
:$i<BR>");
}