ПРОЕКТЫ 


  АРХИВ 


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: Re[2]: [apache-talk] piped_logs



On Sun, 15 Dec 2002, Strange Alex 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 резолвить то нафиг не надо,
> соотвественно можно на него вообще внимания не обращать, и скидывать
> на винт в реальном времени, а на то что будут висеть зомби до
> следеющего сигнала - забить.

А чем удобно-то ?
Крутанул логи, послал USR1 - и никаких проблем с тем, что кто-то помер,
или почему-то не читает из пайпа, или ещё чего.


Игорь Сысоев
http://sysoev.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.