Du kannst auch aus einen php skript einen neuen php skript aus aufrufen ...
der alte wird dann durch ein time-out gekillt ...
... also eine einfache rekursive Schleife, die das Risiko eingeht, den Server irgendwann zu überlasten ... wenn sie zu oft gestartet wird.
Wobei man dieses durch ein überprüfen, ob eine Datei vorhanden ist speeren kann ...
PHP-Code:
function do_lock(){
$file = "running.lock";
if ($fh = fopen($file, "r")) { //Wenn das file schon exestiert und geöffent werden kann
$last_time = fget($fh);
fclose($fh);
$now = date("U");
if ($last_time < $now - 10) return false;
//Und der skript vor unter 10 sek rannte gebe falsch zurück.
}
$fh = fopen($file, "w+");
fput($fh, date("U"));
fclose($fh);
return true;
}
function do_unlock(){
$file = "running.lock";
unlink($file);
}
if (do_lock()){
...
...
sleep(5); //Warte 5 sek ...
do_unlock(); //entferne das Schloss ...
$me = "http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
$run_again = fopen($me, "r");
fget($run_again); //rufe dich selbst auf ...
}