сколько времени logrotate ждет между postrotate и сжатием

сколько времени logrotate ждет между postrotate и сжатием

Я пишу программное обеспечение и хочу перезагрузить файлы журнала, когда процесс получает SIGHUP от чего-то вроде logrotate. Вопрос в том, сколько времени приложение может использовать, прежде чем logrotate начнет сжимать ротированный файл журнала?

На странице руководства и во всех найденных мной ссылках просто указано, что приложение должно перезагрузить журналы «немедленно», но не указано, должно ли это быть сделано, например, за 1 мс или за 1 секунду.

решение1

На всякий случай: вообще никаких.

Logrotate предполагает, что после завершения команды postrotate запись в файл журнала больше не будет производиться. Есть два способа справиться с «закрытием файлов журнала может занять некоторое время»:

  • logrotate'sdelaycompress откладывает этап сжатия до тех пор, покаследующийвызов logrotate. Таким образом, это может занять столько же времени, сколько и следующий запуск logrotate (хотя делать это было бы довольно плохой идеей).
  • Вы можете написать инструмент командной строки, который прикажет демону закрыть и снова открыть файл журнала, и убедиться, что эта команда выполняетнетвыход, пока демон не подтвердит, что все файлы журнала закрыты (не нужно ждать, пока они будут открыты снова, хотя это не повредит). Затем люди могут использовать этот инструмент командной строки из postrotateстроф logrotate.

Связанный контент