Ежечасно Logrotate перезапустит мой процесс

Я собираюсь переключить мою настройку ротации журналов, чтобы ротация журналов происходила ежечасно, а не ежедневно. Я думаю, что у меня есть готовая конфигурация, но я хотел проверить, вызовет ли конфигурация перезагрузку / перезапуск процесса с параметрами 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
}

Если это действительно убивает процесс, есть ли способ обойти этот шаг?

1
задан 27 January 2019 в 13:32
1 ответ

Вы видите команду:

 kill -USR1 `cat /var/run/nginx.pid`

на самом деле не завершает процесс.

Вместо этого kill отправляет специальный сигнал « USR1 » , который для nginx имеет определенное значение и сообщает главному процессу nginx о необходимости повторно открыть файлы журнала.
Фактически это означает, что nginx начинает запись в новые файлы журнала.

С некоторыми другими программами, которые не созданы как настоящие демоны и не понимают этот сигнал, это может быть проблемой, и вам придется их убить и перезапустить. Это не относится к NGinx.

3
ответ дан 3 December 2019 в 18:24

Теги

Похожие вопросы