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 =