Я собираюсь переключить мою настройку ротации журналов, чтобы ротация журналов происходила ежечасно, а не ежедневно. Я думаю, что у меня есть готовая конфигурация, но я хотел проверить, вызовет ли конфигурация перезагрузку / перезапуск процесса с параметрами postrotate?
Я запускаю это на ubuntu 16.04 и скопировал свою конфигурацию из / etc / cron.daily в /etc/cron.hourly готов к работе
Вот моя конфигурация из файла logrotate.d / nginx:
/var/log/nginx/*/*.log {
hourly
missingok
rotate 720
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
Если это действительно убивает процесс, есть ли способ обойти этот шаг?
Вы видите команду:
kill -USR1 `cat /var/run/nginx.pid`
на самом деле не завершает процесс.
Вместо этого kill
отправляет специальный сигнал « USR1
» , который для nginx имеет определенное значение и сообщает главному процессу nginx о необходимости повторно открыть файлы журнала.
Фактически это означает, что nginx начинает запись в новые файлы журнала.
С некоторыми другими программами, которые не созданы как настоящие демоны и не понимают этот сигнал, это может быть проблемой, и вам придется их убить и перезапустить. Это не относится к NGinx.