Używamy upstart do zarządzania naszymi usługami na naszych serwerach Ubuntu. Tworzą dzienniki, które są wylogowane na /var/log/upstart/SERVICE_NAME.log
Następnie codziennie pliki dziennika są obracane za pomocą skryptu logrotation, który jest dostarczany z 12.04 LTS:
/var/log/upstart/*.log {
daily
missingok
rotate 7
compress
notifempty
nocreate
}
Problem polega na tym, że podczas gdy logrotate przenosi pliki, nie wydaje się, aby sygnalizował, aby upstart zamknął i ponownie otworzył pliki, pozostawiając proces aktualizacji zapisujący do PID usuwania.
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
Oczywiście mógłbym przekierować dane wyjściowe z moich własnych usług do innych plików dziennika, ale problem nadal występowałby w przypadku procesów systemowych. Wolałbym też nie budować więcej infrastruktury niż potrzebuję.
nocreate
dyrektywy, nie jestem pewien, dlaczego ktokolwiek miałby skorzystać z tej dyrektywy, szczególnie w przypadku usług, które potencjalnie mogłyby napisać dużo wyników