On Wed, Mar 30, 2005 at 12:06:06AM +0400, Anton V. Yuzhaninov wrote:
Здравствуйте,
Как правильно вращать логи?
Делаю:
mv nginx-error.log nginx-error.log.0
потом kill -USR1 `cat /var/run/nginx.pid`
а логи продолжают писаться в nginx-error.log.0
killall -USR1 nginx тоже не помогает.
nginx-0.1.25
FreeBSD 5.3-STABLE
Для ротации журналов в ОС FreeBSD предусмотрен механизм newsyslog(8).
В /etc/newsyslog.conf добавляем вот такие (или подобные) строки:
/var/log/nginx-access.log 644 3 * @T00 Z
/var/run/nginx.pid 30
/var/log/nginx-error.log 644 3 * @T00 Z
/var/run/nginx.pid 30
Описание указанных строк вы можете найти в newsyslog(8).
Дело не в этом. Если вариант mv/USR1 не работает, то newsyslog тоже
не поможет. Рабочие процессы продолжают работать со старым логом, если
они не смогли открыть новый. Как правило, ошибка "Permission denied".
В этом случае у пользователя, под которым работает рабочий процесс,
нет прав на чтение - r, или поиск - x (чего именно сейчас не скажу) на один
из каталогов в пути к логу. На сам лог все права есть - это обеспечивает
основной процесс.
Игорь Сысоев
http://sysoev.ru