O que esta logginate nginx config faz?

4

No meu /etc/logrotate.d/nginx vi,

/var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                [ -f /var/run/nginx.pid ] && kill -USR1 'cat /var/run/nginx.pid'
        endscript
}

O script postrotate parece matar o processo nginx, o que não faz sentido, então devo estar errado.

O que está fazendo?

    
por Carl 23.12.2013 / 01:06

2 respostas

8

Nginx responde ao sinal USR1 ao reabrir seus arquivos de registro.

O sinal USR1 mata um programa por padrão, mas ele deve ser tratado para fazer o que o programa achar útil. Cada programa define o que faz com USR1 e USR2; para o Nginx, que está reabrindo os arquivos de log (para rotação de log) e executando uma nova instância (para atualizações).

Por convenção, a maioria dos daemons responde ao sinal HUP recarregando seu arquivo de configuração. Nginx segue esta convenção. A intenção original do sinal HUP era sinalizar o fim de uma sessão para um processo interativo (desligamento do modem - o usuário foi embora, não faz sentido continuar), mas esse significado não se aplica aos daemons.

    
por 23.12.2013 / 01:34
0

O comando kill geralmente envia sinais POSIX para um processo. A chamada normal envia SIGTERM , que solicita que um processo termine. No entanto, no seu caso, o sinal que está sendo enviado é SIGUSR1 , que no seu caso, pede ao nginx para reciclar seus arquivos de log.

    
por 23.12.2013 / 01:36