ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: [apache-talk] piped_logs



Hello Igor,

Wednesday, December 11, 2002, 8:10:45 PM, you wrote:


IS> On Wed, 11 Dec 2002, Strange Alex wrote:

>>  итак apachectl start
>>  1 процесс /bin/sh -с /path/process error
>>  и 2 !!! /path/process error (причем один из них имеет ppid 1 (init) 8-0 )

IS> Когда Апач создаёт other child (в его терминах), то он форкается два
IS> раза, после первого выходит, и таким образом у второго ppid оказывается 1.

Хм... точно. НО все равно непонятно, почему он по разному выходит для
процессов обрабатывающих access.log & error.log. ПОчему для error
процесса shell умирает, а сам процесс нет?

>>  Итак что имеем: сигналы перехватывать надо, дабы успеть скинуть на
>>  винт все очереди. Но при получении USR1 & HUP процесс отвечающий за
>>  error.log почему-то остается ждать, что не  есть хорошо
>>  (непонятно почему процесс который пишет в access.log все делает как 
>хотелось бы).

IS> Моя гипотеза - error_log никогда не закрывается всеми процессами,
IS> а access_log - закрывается.

Так это баг или фича ? :)

>>  Внимание вопрос: по каким событиям надо резко начинать флушить
>>  буфера и делать exit() ?

>>  МОжно конечно это делать сразу по EOF || SIGTERM || SIGHUP ||
>>  SIGUSR1. Но есть подозрение что в момент SIGUSR1 например еще есть
>>  что прочитать с STDIN. то есть надо дочитать до EOF. Натыкаемся на
>>  то что process_error не получает EOF если ему приходит sig.
IS> Короче, смотреть нужно в районе src/main/http_logs.c

Чем и придется сейчас заниматься :)

IS> А зачем вообще нужны эти piped logs ?

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



* И тройка назад поскакала, сметая с капусты росу ...
--
С уважением, Алексей Русанов
STRANGE-RIPN, RSA16-RIPE, 2:5000/104.51, ICQ: 8397628
Научно-производственное предприятие "Юникон Ру", Новосибирск
Тел:  +7 3832 23-94-06
      +7 3832 10-00-50
Факс: +7 3832 23-94-06
http://www.unicon.ru/

=============================================================================
=               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                 =



 




Copyright © Lexa Software, 1996-2009.