Hello,
[...] Du kannst aus einem PHP-Script heraus nicht einfach einen Hintergrundprozess anstoßen und das Script beenden bevor der Prozess zu Ende gelaufen ist. Wenn Du exec() ausführst, wartet das Script so lange, bis der per exec() gestartete Prozess beendet wird.
Das ist nicht so, wenn man ihn, wie in den UCN zu "exec()"
http://www.php.net/manual/en/function.exec.php
Note von
juha at kuhazor dot idlegames dot com
03-Aug-2005 11:32
This technique was post posted by someone else earlier, however it did not work for me. This works with all Linux distros as long as path to your PHP processor is correct. The exec will return the PID for the process.
<?
$pid=exec("/usr/local/bin/php run.php > /dev/null & echo $!");
echo $pid;
?>
My run.php script is here, it is good for testing.
<?
function getmicrotime()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$starttime = getmicrotime();
$date=date("d/m/Y H:i",time());
echo "Started sleeping\n";
sleep(30);
$endtime = getmicrotime();
echo "Woke up\n";
echo "Slept ".round(($endtime-$starttime),2)."\n";
?>
Das habe ich auf PHP 4 und 5 in Apache1.x und 2.x auf Linux diverse Male impelemnetiert, und bisher überhaupt keine Probleme damit gehabt.
Und ein Fork (Abtrennung des Child vom Vaterprozess) durch das "&" auszulösen, ist eine durchaus geläufige Technik unter Linux
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
![](http://bitworks.de/~selfHTML/Virencheck.gif)