우리는 upstart를 사용하여 Ubuntu 서버에서 서비스를 관리합니다. /var/log/upstart/SERVICE_NAME.log에 로그 아웃 된 로그를 생성합니다.
그런 다음 매일 12.04 LTS와 함께 제공되는 logrotation 스크립트를 사용하여 로그 파일을 회전시킵니다.
/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
지시문 때문에 , 누군가가이 지시문을 사용하는 이유, 특히 많은 양의 출력을 작성할 수있는 서비스에 대해 확신 할 수 없음