Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Остановка выполнения скрипта
Форумы портала PHP.SU » Серверное администрирование » Apache и другие веб-серверы » Остановка выполнения скрипта

Страниц (1): [1]
 

1. Albertino - 01 Апреля, 2011 - 10:46:24 - перейти к сообщению
Можно ли както принудительно остановить выполнение php скрипта, когда он уже запищен, а то в нем есть ошибка и он не останавливыется и логи забивают все место на сервере.
сервер на Windows 2008, стоит сборка веб сервера ZendServer
2. AdMeen - 01 Апреля, 2011 - 10:50:48 - перейти к сообщению
Albertino пишет:
Можно ли както принудительно остановить выполнение php скрипта, когда он уже запищен, а то в нем есть ошибка и он не останавливыется и логи забивают все место на сервере.
сервер на Windows 2008, стоит сборка веб сервера ZendServer


exit();
3. Albertino - 01 Апреля, 2011 - 10:54:38 - перейти к сообщению
AdMeen пишет:

Вы не правильно поняли скрипт уже выполняется и мне надо заставить его закончить работать, а exit() это другое его пишешь в коде скрипта когда он еще не запущен
4. JustUserR - 02 Апреля, 2011 - 21:17:47 - перейти к сообщению
Albertino пишет:
Можно ли както принудительно остановить выполнение php скрипта, когда он уже запищен, а то в нем есть ошибка и он не останавливыется и логи забивают все место на сервере.
В качестве возможного варианта для осуществления решения предполагаемой задачи, заключающеся в огранизации действий по инициализации прекращения исполнения целевого процесса web-приложения, функционирования которого производится на основании CGI-совместимого интерфейса во вложенной дифференциированной группе сопоставленных процессов, для которых осуществляется проектирование внешних параметров переменной среды во вторичную внутренний пониженный базовый уровень элементного трактования, допустимо использование формированных параметров локальной инстанции, которые могут быть инициализированы в отношении текущего идентификатора процесса в наследованной области переменной среды
Таким образом возможно осуществление фунционирование предполагаемой задачи на основании следующего решения, обеспечивающего целевую реализацию в условиях размещения в приоритетной первичной ступени внутреннего пониженный базовый уровень элементного трактованияпредоставленного PHP-кода в
PHP:
скопировать код в буфер обмена
  1. if(getenv("STOP_FLAF".getpid())=="true") {exit;}
  2. else {}
5. DeepVarvar - 24 Августа, 2011 - 20:00:10 - перейти к сообщению
Извиняюсь за "археологию" но два ответа на поставленный вопрос - вообще ни о чем...

Допустим у меня сервер и некий чел тестирует там сайт.
И вот этот чел берет и запускает бесконечный цикл в пхп.
пхп установлен как CGI и после некоторой задержки сервер перестает ждать ответа от CGI и выдает 500-ю ошибку - мол бед гетвей, все дела.

А вот сам процесс пхп преспокойно продолжает выполняться пожирая ресурсы.
И вот я как м***к лезу в кансоль и убиваю ветку процесса по пиду.

Ну так будьте ласковы, объясните как сделать так, чтобы оно самоубилось?
Как узнать (в контексте CGI) что сервер ответ от тебя уже не ждет, и значит уже надо бы завершиться?

set_time_limit тут вообще рядом не стоял,
т.к. указание нулевого значения в пхп-скрипте уже ничего не остановит,
а ограничивать принудительно - не дело вообще.
6. White - 24 Августа, 2011 - 21:48:10 - перейти к сообщению
DeepVarvar пишет:
после некоторой задержки сервер перестает ждать ответа от CGI и выдает 500-ю ошибку

а max_execution_time = время задержки до 500 не спасет? или это не удобно?
в fcgi есть один небольшой баг связанный с дочерними процессами https://bugs.php.net/bug.php?id=40286
может речь об этом?
7. DeepVarvar - 24 Августа, 2011 - 22:02:29 - перейти к сообщению
White да, оно..
Там чувак предлагает в крон запихнуть задачу и проверять работающие процессы длительностью более определенного времени..

А бага, да, и в 5.1 и в 5.2...
Щас посмотрю, может в 5.3 подправили, т.к. говорят что патч не помогаэ даже если перекомпилить..
(Добавление)
И пару каментов про настройки, что мол памагло:

cgi.fix_pathinfo=1
session.gc_probability = 1
(Добавление)
5.3 все с той же проблемой
8. White - 24 Августа, 2011 - 22:12:42 - перейти к сообщению
DeepVarvar
может и правда в крон... хотя больше на костыль похоже
9. DeepVarvar - 24 Августа, 2011 - 22:14:28 - перейти к сообщению
DeepVarvar пишет:
session.gc_probability
вот эта хрень отвечает за сбор "мусора" с крона для пхп. Какраз то о чем говорил чувак.
(Добавление)
Дааа, в дебиане не доступна такая фишка через php.ini - только крон.
Спойлер (Отобразить)

(Добавление)
Ладно, сейчас не важно - потом "покурю", потюнингую. Ну и отпишусь о результатах.
(Добавление)
залез в кронтаб:

завершение через 24 минуты если не определено.

Ладно - куда копать уже понятно. Закатив глазки

 

Powered by ExBB FM 1.0 RC1