Ми використовуємо upstart для управління нашими послугами на наших серверах Ubuntu. Вони створюють журнали, які вийшли в /var/log/upstart/SERVICE_NAME.log
Потім щодня файли журналу обертаються за допомогою сценарію логротації, який поставляється з 12.04 LTS:
/var/log/upstart/*.log {
daily
missingok
rotate 7
compress
notifempty
nocreate
}
Проблема полягає в тому, що в той час, коли logrotate переміщує файли, воно не здається сигналом для запуску для закриття та повторного відкриття файлів, залишаючи процес запуску запису на видалення PID.
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
Очевидно, що я міг би перенаправити висновок із власних служб на інші файли журналів, але проблема все одно буде мати місце для системних процесів. Крім того, я не хотів би будувати більше інфраструктури, ніж те, що мені потрібно.
nocreate
директиву, не впевнений, чому хтось використовуватиме цю директиву, особливо для служб, які потенційно можуть написати багато результатів