У меня есть приложение rails, которое запускает скрипт php с помощью:
php -f aa.php
PHP-скрипт имеет в начале
set_time_limit(60); // 1 minute
ini_set('max_execution_time',60);
Но скрипт php не умирает даже через две минуты.
Я подтвердил использование ps -ef | grep php
и процесс все еще работает.
Разве он не умирает, потому что родитель (приложение rails) жив?
Я проверил safe_mode
выключен для php
Хорошо, см. это примечание от php.net, скрипт не остановится из-за set_time_limit, пока есть f.e. запрос БД
НОТА:
Функция set_time_limit () и директива конфигурации max_execution_time влияют только на время выполнения самого скрипта. Любое время, потраченное на действия, которые происходят за пределами выполнения сценария, такие как системные вызовы с использованием system (), потоковые операции, запросы к базе данных и т. Д., Не учитывается при определении максимального времени выполнения сценария. Это не так в Windows, где измеренное время реально.
Вы можете установить функцию тайм-аута в вашем цикле так, чтобы он останавливался через минуту или в любое другое время
Других решений пока нет …