Время жизни скрипта

850039

Новичок
Время жизни скрипта

Со страницы дергается некоторый скрипт (назовем его родитель), который собирает необходимые данные и передает эти данные другому скрипту, вызывая его через curl с таймаутом 3 сек (данные передаются через POST), после чего родитель завершается, а вызванный скрипт начинает работу

На старом сервере эта схема работала отлично (скрипт умирал либо после отработки, либо после рестарта апача)
На новом сервере проблема вот такая:
Скрипт работает только 300 сек после того, как его дернули курлом. Если дергать прямо из браузера, то он работает бесконечно.

В начале скрипта
PHP:
@ini_set('max_execution_time',0); 
set_time_limit(0); 
ignore_user_abort(TRUE);
Сейфмод выключен
В php.ini есть ограничение, но оно не работает, если не закрывать браузер.
Настройку ограничения в 300 сек нашел в httpd.conf, ее закомментил, но проблема осталась.

Ось FreeBSD

Подскажите, в какую сторону копать?

ЗЫ: вариант переписать софт на крон или другой вариант вызова скриптов не рассматривается
 

Oops

Новичок
Re: Время жизни скрипта

Может попробовать так?

PHP:
<?php
header( 'Cache-Control: no-cache' );
header( 'Content-type: image/gif' );
header( 'Content-length: 43' );

echo base64_decode('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='); # Картинка из phpBB3

flush();
?>
 

850039

Новичок
Тут скорее был вопрос к знатокам FreeBSD и настройки апача.

А по поводу написанного выше предложения я вообще ничего не понял.

Мне надо настроить апач, я не могу переписывать весь софт, обновления софта будут приходить все равно в таком виде, как есть сейчас, а каждый раз лазить по коду и заменять в обновлениях новые куски кода на вариант, который будет работать на сервере - это не дело. Автор софта на мою проблему развел руками, тем более до этого год система работала.
 

850039

Новичок
dimagolov
мой, имею полный доступ, админить умею на уровне "включить выключить телевизор, переключить программы, увеличить/уменьшить громкость"
 

850039

Новичок
Timeout 300

Как я понимаю, это таймаут на TCP соединение? Не разбираюсь в этом.
 

850039

Новичок
Прощу прощения, но ни разу не сталкивался с этим. Можно ссылку на готовый пример?
 

850039

Новичок
Хех, мануал я читал :)
Но как данный механизм использовать, чтобы узнать причину смерти скрипта?
 

kode

never knows best
дело в том что курл закрывает соединение после того как всё сделает. А браузер может keep-aliveить.

300 секунд потому-что в httpd.conf прописано Timeout по дефолту 300.

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300


я бы посоветовал бы изменить архитектуру (потому-что это ИМХО изврат дергать скрипт скриптом через курл, куда правильнее редиректить)
 

850039

Новичок
kode
каким образом редиректить, если надо, чтобы скрипт выполнялся в фоне, а я продолжал работать с сайтом и при желании запускать любое количество таких скриптов в фон?

Меня существующий вариант устраивает, на локалке работает, на старом сервере работал, у всех других владельцев данного скрипта он тоже работает.. А я как лох )))
 

kode

never knows best
Автор оригинала: 850039
kode
каким образом редиректить, если надо, чтобы скрипт выполнялся в фоне, а я продолжал работать с сайтом и при желании запускать любое количество таких скриптов в фон?

Меня существующий вариант устраивает, на локалке работает, на старом сервере работал, у всех других владельцев данного скрипта он тоже работает.. А я как лох )))
самым неправильным но простым решением будет в httpd.conf поставить Timeout 35000
 

850039

Новичок
Автор оригинала: 850039
kode
каким образом редиректить, если надо, чтобы скрипт выполнялся в фоне, а я продолжал работать с сайтом и при желании запускать любое количество таких скриптов в фон?

Меня существующий вариант устраивает, на локалке работает, на старом сервере работал, у всех других владельцев данного скрипта он тоже работает.. А я как лох )))
Иногда скрипты работают несколько суток в фоне :)

-~{}~ 08.08.08 17:11:

dimagolov
ну хоть бы идею подскинул :)
Если можешь помочь - стукни в асю 850039, отблагодарю, если поможешь
 

dimagolov

Новичок
Да что подкидывать - регистришь shutdown-function, которая смотрит connection-status и пишет это в лог. Что здесь из rocket science, что надо разжевывать? Потом в логе смотришь, по какой причине дох скрипт и есть ли вообще запись об этом, про результатам думаешь о причинах такого безобразия
 

850039

Новичок
Спасибо всем за внимание, не стал проверять, как умирает скрипт, решил методом тыка данную проблему... Изменил в httpd.conf настройку
Timeout 300
на
Timeout 0
Пока работает :)
 

dimagolov

Новичок
по логике это должно привести к тому, что подвисшие запросы завалят апач в DoS, когда у него кончится лимит активных запросов.
 

850039

Новичок
На других скриптах везде установлено 30 секунд ограничение кроме тех, которые использую я. Откуда могут появиться подвисшие запросы?
 
Сверху