Summary: | after rotating logs apache continues logging to deleted file, but not in newly created one | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | dfo <dfo> | ||||
Component: | apache | Assignee: | Michael Shigorin <mike> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | major | ||||||
Priority: | P2 | CC: | at, cas, crux, ender, lakostis, ldv, mike, mithraen, qa_viy, rider, shaba, solo, viy | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
dfo
2003-10-13 13:49:52 MSD
the problem is in reload() function in /etc/rc.d/init.d/httpd adding "--name libhttpd.ep" to stop_daemon parameters in that function resolves the problem. please see attachment -- this will be in 1.3.28rusPL30.18-alt7 Created attachment 294 [details]
fixed initscript
fixed in 1.3.28rusPL30.18-alt7 Still here. [lakostis@lks lakostis]$ rpm -q service service-0.5.2-alt1 [lakostis@lks lakostis]$ rpm -q apache apache-1.3.29rusPL30.18-alt2 [lakostis@lks lakostis]$ ls /etc/init.d/* | grep http /etc/init.d/httpd [lakostis@lks lakostis]$ su -c "ls /etc/logrotate.d/ | grep apache" Password: apache [lakostis@lks lakostis]$ - т.е. .rpmnew нет. Гм. У меня сейчас указанный тест приводит к попаданию информации в access_log (и `tail -f`, который его переоткрывает, видимо). ALT Linux Sisyphus (20040122) Костик, можешь проверить пошагово и конкретизировать? Предложено делать при logrotate не condreload, а condrestart. Так будет в 1.3.29rusPL30.18-alt6. --- <dmi> http://www.webmasterworld.com/forum23/1740.htm <dmi> там говорят надо делать рестарт <dmi> когда логи уже созданы <dmi> --- /etc/logrotate.d/apache.orig 2004-03-14 14:46:13 +0300 <dmi> +++ /etc/logrotate.d/apache 2004-03-14 14:46:23 +0300 <dmi> @@ -4,7 +4,7 @@ <dmi> sharedscripts <dmi> create 0644 root apache <dmi> postrotate <dmi> - /sbin/service httpd condreload >/dev/null <dmi> + /sbin/service httpd condrestart >/dev/null <dmi> endscript <dmi> } <dmi> @@ -14,6 +14,6 @@ <dmi> sharedscripts <dmi> create 0644 root apache <dmi> postrotate <dmi> - /sbin/service httpd-perl condreload >/dev/null <dmi> + /sbin/service httpd-perl condrestart >/dev/null <dmi> endscript <dmi> } вроде поправлено Не надо делать condrestart - всё равно не поможет. Проблема в init.d/httpd - там в reload() использована неправильная конструкция: stop_daemon --lockfile "$LOCKFILE" -HUP Поясню, что происходит: 1. первый condreload: "$LOCKFILE" на месте, процессу посылается HUP, после чего "$LOCKFILE" удаляется. 1. второй condreload/condrestart: "$LOCKFILE" отсутствует, процессу ничего не посылается. Если stop_daemon используется для посылки сигнала, а не для завершения работы демона, то --lockfile не только не нужен, но даже вреден. Workarounded in service-0.5.4-alt1 Ещё раз: не надо делать condrestart, ибо condreload тоже работает. Спасибо, пошел фиксить. Имеет ли смысл продублировать это пояснение/иллюстрацию в документации service? Что характерно -- в httpd-perl.init.Sisyphus этот момент был оформлен правильно ;-] Та же проблема есть в /etc/rc.d/init.d/ dovecot httpd2 kadmin krb5kdc psion slurpd Именно поэтому $ rpmquery --lastchange service * Sun Jun 27 2004 Dmitry V. Levin <ldv@altlinux> 0.5.4-alt1 - functions/stop_daemon: + when sending HUP, do not remove lockfile to workaround bugs in third party rc scripts. fixed in 1.3.31rusPL30.20-alt5 |