เราใช้การเริ่มต้นเพื่อจัดการบริการของเราบนเซิร์ฟเวอร์ Ubuntu พวกเขาสร้างบันทึกที่ออกจากระบบเพื่อ /var/log/upstart/SERVICE_NAME.log
จากนั้นทุกวันไฟล์บันทึกจะถูกหมุนโดยใช้สคริปต์ logrotation ซึ่งมาพร้อมกับ 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
คำสั่ง, ไม่แน่ใจว่าทำไมทุกคนจะใช้คำสั่งนี้โดยเฉพาะอย่างยิ่งสำหรับบริการที่อาจเขียนจำนวนมากเอาท์พุท