O comportamento que você está descrevendo acontece apenas se logrotate tiver sido instruído explicitamente a fazê-lo através da diretiva copytruncate
. A documentação alerta sobre a possibilidade de perder alguns dados de log devido a esse comportamento. Essa diretiva só deve ser utilizada como último recurso.
O método padrão de girar arquivos de log é renomear e enviar um sinal para o processo para permitir que ele abra o novo arquivo de log. Isso é mais rápido e não arrisca perder parte do log. Mas requer que o processo de escrita seja capaz de mudar para um novo arquivo de log.
A compressão pode ser desativada ou adiada até a próxima rotação. Se a diretiva compress
for usada, os arquivos de log antigos serão compactados. Se essa diretiva não for usada, eles não serão compactados.
Se as opções compress
e delaycompress
forem usadas, a compactação será atrasada até a próxima rotação. Dessa forma, após cada rotação, os dois arquivos de log mais recentes ainda não foram compactados.