Уведомление Apache поймало SIGTERM, отключив скрипт цикла php

У меня есть DV 4.0 от MediaTemple.

Я получил «внутреннюю ошибку сервера 500», когда запускаю скрипт файла php, который должен зацикливаться более 5000 раз.

Код выглядит так, потому что, когда я выполняю 200-кратный цикл, результат печатается.

мои "max_input_time", "max_execution_time", "default_socket_timeout" и все остальные параметры php не являются проблемой (я думаю, все установлено на 9000, а memory_limit -1)

Я получил это:

[Sat Jan 11 19:25:22 2014] [notice] caught SIGTERM, shutting down

Это потому, что apache перезагружается. Мой вопрос: как я могу зациклить более 5000 раз в моем сценарии без сбоя моей системы ;-)

Спасибо


person Jean-philippe Emond    schedule 12.01.2014    source источник
comment
DV 4.0 это openVZ-подобный сервер? Проверьте cat /proc/user_beancounters ограничения ресурсов.   -  person Oleg Neumyvakin    schedule 13.01.2014


Ответы (1)


Ваш вопрос в том, как зациклиться более 5000 раз.

Зацикливание 5000 или 500000000 раз не является проблемой. У вас проблема в другом.

SIGTERM используется для перезапуска Apache (в случае, если он настроен на автоматический перезапуск в init): http://httpd.apache.org/docs/2.2/stopping.html

Запись в журнале, которую вы видите, должна быть там, потому что SIGTERM предназначен для этой цели. Возможно, apache не дает сбоев, но с вашими данными возникла проблема или время выполнения истекло.

Это может быть пользовательский модуль PHP или код. Посмотрите журналы доступа/ошибок apache на момент сбоя. Не забудьте включить регистрацию ошибок. Это может помочь вам определить, что пошло не так. Это включено? ВСЕГДА ВКЛЮЧАЙТЕ ОТЧЕТЫ ОБ ОШИБКАХ, ЕСЛИ В РЕЖИМЕ РАЗРАБОТКИ!!!

Если он действительно дает сбой, даже не обслуживая статический контент, то это звучит как какая-то проблема исчерпания потока/соединения. Однако кажется, что в вашем коде что-то не так, и вы подавляете ошибки.

Если вы уверены, что на вашей стороне/коде все в порядке (если он работает в другой системе), вам может потребоваться переустановить apache и php, и это решит, что был поврежден файл или вы неправильно его перенастроили.

person Selay    schedule 12.01.2014