Manchmal werden PHP-Scripts nicht nach Ablauf von "max_execution_time" beendet

Unter Windows berücksichtigt "max_execution_time" die tatsächliche Zeit der Scriptausführung, unter Linux hingegen gilt:

Die set_time_limit()-Funktion und die max_execution_time Konfigurationsdirektive beschränken nur die Ausführungszeit des Skripts selbst. Zeit die für Aktivitäten außerhalb des Skripts aufgebracht wird wie z.B. die Ausführung von Systemaufrufen mit system(), Streamoperationen, Datenbankabfragen usw. werden nicht in die Berechnung der Ausführungszeit mit einbezogen.

Beispielsweise würde nachfolgendes Script nicht vom PHP-Interpreter nach 10 Sekunden unterbrochen werden, sondern es würde erst regulär abgearbeitet nach 60 Sekunden Pause enden, da die Zeit des Systemaufrufs "sleep()" nicht in die Berechnung von "max_execution_time" einfließt:

<?php
set_time_limit(10);
sleep(60);
echo "slept 60s\n";
?>
Durchschnittliche Bewertung: 5 (1 Abstimmung)

Es ist möglich, diesen Artikel zu kommentieren.