On Wed, 23 Jun 1999, Stanislav Malyshev a.k.a Frodo wrote:
> AP>> Он у меня статически линкуется. И при изменении кода модуля, понятное
> AP>> дело, нужно перекомпилировать и сказать restart. Коннекты отваливаются.
> AP>> 8-/ Ведь есть же большое число (вероятно) поисковиков, баннерных систем,
> Хех. А Вы, типа, хотите, чтобы новый код подхватывал старые конекты? И
> досылал данные с того байта, где старый код остановили? Как Вы это себе
> представляете??? Откуда он эту информацию возьмет, хотелось бы знать???
Хех. Хочу. 8-)) Жадный я..
На самом деле я писал (правда, в apache-rus, зачем-то).. Интересно было
следующее: вместе с httpd запускается другой процесс (*), который видит
всю shared mem апаче. Пока httpd не получает SIGTERM, он ничего не делает,
когда ему говорится kill - процесс (*) тянет на себя bind к портам, ждет,
пока не завершатся текущие соединения (keep-aliv'ы разрывает, не жалко;
естественно, какой-то тайм-аут есть), после чего принимает новые
connection'ы и ждет, пока не запустится апач с измененным модулем, после
чего дает это все ему, когда тот хочет сделать bind.
Правда боюсь, что без жутких копаний в ядре FreeBSD второе не получится..
Основная цель не в том, чтобы новый код досылал старые данные, а в том,
чтобы не терялись connect'ы в промежутке между посылкой SIGTERM'а
и bind'ом на порт уже нового кода. У меня, например, этот промежуток может
растягиваться секунд на 8-15, пока все дети не поумирают, статусы не
запишутся и т.д...
Ведь пишут же умные люди модули apache к популярным серверам (хотя бы
rambler, вероятно) их же нужно как-то модифицировать.. Или все профработы
в пять утра делать? 8-)
--
Art [Artem Podstreshny] Radio-MSU Network Center
+7 (095)932-8880 http://www.radio-msu.net/~art/
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =