Nous utilisons upstart pour gérer nos services sur nos serveurs Ubuntu. Ils produisent des journaux qui sont déconnectés de /var/log/upstart/SERVICE_NAME.log
Puis quotidiennement, les fichiers journaux sont tournés à l'aide du script logrotation fourni avec 12.04 LTS:
/var/log/upstart/*.log {
daily
missingok
rotate 7
compress
notifempty
nocreate
}
Le problème est que, tandis que logrotate déplace les fichiers, il ne semble pas signaler à upstart de fermer et rouvrir les fichiers, laissant le processus upstart écrit dans un PID de suppression.
init 1 root 8w REG 202,1 64 2431 /var/log/upstart/dbus.log.1 (deleted)
init 1 root 13w REG 202,1 95 2507 /var/log/upstart/acpid.log.1 (deleted)
init 1 root 14w REG 202,1 127 17377 /var/log/upstart/whoopsie.log.1 (deleted)
init 1 root 36w REG 202,1 122 6747 /var/log/upstart/SERVICE_NAME.log.1 (deleted)
init 1 root 37w REG 202,1 30 6762
Évidemment, je pouvais rediriger la sortie de mes propres services vers d'autres fichiers journaux, mais le problème serait toujours là pour les processus système. De plus, je préfère ne pas avoir à construire plus d'infrastructures que ce dont j'ai besoin.
nocreate
directive, je ne sais pas pourquoi quelqu'un utiliserait cette directive, en particulier pour les services qui pourraient potentiellement écrire beaucoup de sortie