PHPまたはApacheが無限ループを止めないのはなぜですか?なぜタイムアウトは無限ループを停止しません
while (true)
{
sleep(5);
}
Apacheはデフォルトのタイムアウトを持っている= 300 PHPの - max_execution_timeに= 30
しかし、このループは時間かけて作業することができます。どうして?
PHPまたはApacheが無限ループを止めないのはなぜですか?なぜタイムアウトは無限ループを停止しません
while (true)
{
sleep(5);
}
Apacheはデフォルトのタイムアウトを持っている= 300 PHPの - max_execution_timeに= 30
しかし、このループは時間かけて作業することができます。どうして?
sleep()はスクリプト外で発生するため、スクリプトの最大実行時間には影響しません。
注意:関数set_time_limit()と設定ディレクティブmax_execution_timeは のみスクリプト 自体の実行時間に影響を与えます。 スクリプトを実行している最中にsystem()、sleep()を使用してシステムコールなどのスクリプトの実行 が実行されなかった場合、sleep()関数、データベースクエリなどは含まれません。 。 http://php.net/manual/en/function.sleep.php
ありがとう – hxss
最大時間後にApacheがあなたの 'while'ループを止めたがっていますか?なぜあなたはそれを望んでいますか? –
これをタイムアウトしないでください。 – hxss