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@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.