Bug#445203: debian-policy: 10.8. Log files: /etc/logrotate.d/<package> preferred
Steve Langasek <vorlon@debian.org> writes:
> I think "invoke-rc.d" is wrong per se for this. Where the behavior of
> 'invoke-rc.d foo reload' differs from that of '/etc/init.d/reload', it's
> *incorrect* in the context of log rotation: the post-rotation reopening
> of logfiles should complete regardless of the runlevel policy for the
> service.
> Cf. my follow-up to bug #588085.
I propose the following patch for this bug instead in order to get it
clear of this discussion. We can always go back and sort out whether it
should use invoke-rc.d after we work through the other bug.
Does this look okay?
diff --git a/policy.sgml b/policy.sgml
index 7736ddb..a7bf76e 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -7903,11 +7903,13 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
</p>
<p>
- Log files must be rotated occasionally so that they don't
- grow indefinitely; the best way to do this is to drop a log
- rotation configuration file into the directory
- <file>/etc/logrotate.d</file> and use the facilities provided by
- logrotate.<footnote>
+ Log files must be rotated occasionally so that they don't grow
+ indefinitely. The best way to do this is to install a log
+ rotation configuration file in the
+ directory <file>/etc/logrotate.d</file>, normally
+ named <file>/etc/logrotate.d/<var>package</var></file>, and use
+ the facilities provided by <prgn>logrotate</prgn>.
+ <footnote>
<p>
The traditional approach to log files has been to set up
<em>ad hoc</em> log rotation schemes using simple shell
@@ -7932,17 +7934,20 @@ ln -fs ../sbin/sendmail debian/tmp/usr/bin/runq
section="8">):
<example compact="compact">
/var/log/foo/*.log {
-rotate 12
-weekly
-compress
-postrotate
-/etc/init.d/foo force-reload
-endscript
+ rotate 12
+ weekly
+ compress
+ missingok
+ postrotate
+ [ -f /var/run/foo.pid ] && kill -s HUP `cat /var/run/foo.pid`
+ endscript
}
</example>
This rotates all files under <file>/var/log/foo</file>, saves 12
- compressed generations, and forces the daemon to reload its
- configuration information after the log rotation.
+ compressed generations, and tells the daemon to reopen its log
+ files after the log rotation. It skips this log rotation
+ (via <tt>missingok</tt>) if no such log file is present, which
+ avoids errors if the package is removed but not purged.
</p>
<p>
--
Russ Allbery (rra@debian.org) <http://www.eyrie.org/~eagle/>
Reply to: