[PATCH] add examples/logrotate.conf

Eric Wong normalperson at yhbt.net
Tue Mar 29 12:54:58 EDT 2011

Eric Wong <normalperson at yhbt.net> wrote:
> That could be it.   logrotate (without the scary/expensive
> "copytruncate" option) works very quickly for individual files.  Do you
> have the "sharedscripts" option in logrotate enabled?  You should enable
> "sharedscripts"

I actually went with lastaction in my example (I keep forgetting it over
the years and going to postrotate + sharedscripts for some reason..)

> I should post a logrotate example config so other users don't run into
> the same problem...

http://unicorn.bogomips.org/examples/logrotate.conf and pushed
this out to unicorn.git

>From c1ebb313735a280582d87c1ba44619aa47e00b06 Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson at yhbt.net>
Date: Tue, 29 Mar 2011 09:47:26 -0700
Subject: [PATCH] add examples/logrotate.conf

logrotate is the de facto tool for logrotation, so an
example config for highlighting important parts are in order.

Since our USR1 signal handling is part of the crusade against
the slow and lossy "copytruncate" option, be sure to
emphasize that :)
 examples/logrotate.conf |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)
 create mode 100644 examples/logrotate.conf

diff --git a/examples/logrotate.conf b/examples/logrotate.conf
new file mode 100644
index 0000000..03fefc6
--- /dev/null
+++ b/examples/logrotate.conf
@@ -0,0 +1,29 @@
+# example logrotate config file, I usually keep this in
+# /etc/logrotate.d/unicorn_app on my Debian systems
+# See the logrotate(8) manpage for more information:
+#    http://linux.die.net/man/8/logrotate
+# Modify the following glob to match the logfiles your app writes to:
+/var/log/unicorn_app/*.log {
+	# this first block is mostly just personal preference, though
+	# I wish logrotate offered an "hourly" option...
+	daily
+	missingok
+	rotate 180
+	compress # must use with delaycompress below
+	dateext
+	# this is important if using "compress" since we need to call
+	# the "lastaction" script below before compressing:
+	delaycompress
+	# note the lack of the evil "copytruncate" option in this
+	# config.  Unicorn supports the USR1 signal and we send it
+	# as our "lastaction" action:
+	lastaction
+		# assuming your pid file is in /var/run/unicorn_app/pid
+		pid=/var/run/unicorn_app/pid
+		test -s $pid && kill -USR1 "$(cat $pid)"
+	endscript
Eric Wong

More information about the mongrel-unicorn mailing list