Que fait ce logrotate nginx config?

Dans mon /etc/logrotate.d/nginx j'ai vu,

 /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 } 

Le script postrotate ressemble à tuer le process nginx, ce qui n'a pas de sens donc je dois me tromper.

Qu'est-ce qu'il fait?

Nginx répond au signal USR1 ses files journaux.

Le signal USR1 tue un programme par défaut, mais il est destiné à être manipulé pour faire ce que le programme trouve utile. Chaque programme définit ce qu'il fait avec USR1 et USR2; pour Nginx, c'est la réouverture des files journaux (pour la rotation du journal) et l'exécution d'une nouvelle instance (pour les mises à jour).

Par convention, la plupart des démons répondent au signal HUP en rechargeant leur file de configuration. Nginx suit cette convention. L'intention initiale du signal HUP était de signaler la fin d'une session au process interactif (modem raccrocher – l'user est parti, il n'y a aucun intérêt à continuer), mais cette signification ne s'applique pas aux démons.

La command kill envoie génériquement des signaux POSIX à un process. L'invocation normale envoie SIGTERM , qui request à un process de se terminer. Cependant, dans votre cas, le signal envoyé est SIGUSR1 qui, dans votre cas, request à nginx de recycler ses files journaux.