about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--FAQ2
-rw-r--r--KNOWN_ISSUES4
-rw-r--r--Sandbox5
-rw-r--r--examples/logrotate.conf17
-rw-r--r--examples/unicorn@.service5
-rw-r--r--lib/unicorn/oob_gc.rb5
6 files changed, 30 insertions, 8 deletions
diff --git a/FAQ b/FAQ
index bc70493..4ae2034 100644
--- a/FAQ
+++ b/FAQ
@@ -7,7 +7,7 @@ drained entirely by the application.  This may happen when request
 bodies are gzipped, as unicorn reads request body data lazily to avoid
 overhead from bad requests.
 
-Ref: http://mid.gmane.org/FC91211E-FD32-432C-92FC-0318714C2170@zendesk.com
+Ref: https://bogomips.org/unicorn-public/FC91211E-FD32-432C-92FC-0318714C2170@zendesk.com/
 
 === Why aren't my Rails log files rotated when I use SIGUSR1?
 
diff --git a/KNOWN_ISSUES b/KNOWN_ISSUES
index 6b80517..ebd4822 100644
--- a/KNOWN_ISSUES
+++ b/KNOWN_ISSUES
@@ -9,7 +9,7 @@ acceptable solution.  Those issues are documented here.
   handlers.
 
 * Issues with FreeBSD jails can be worked around as documented by Tatsuya Ono:
-  http://mid.gmane.org/CAHBuKRj09FdxAgzsefJWotexw-7JYZGJMtgUp_dhjPz9VbKD6Q@mail.gmail.com
+  https://bogomips.org/unicorn-public/CAHBuKRj09FdxAgzsefJWotexw-7JYZGJMtgUp_dhjPz9VbKD6Q@mail.gmail.com/
 
 * PRNGs (pseudo-random number generators) loaded before forking
   (e.g. "preload_app true") may need to have their internal state
@@ -60,7 +60,7 @@ acceptable solution.  Those issues are documented here.
   application to use Rails 2.3.2 and you have no other choice, then
   you may edit your unicorn gemspec and remove the Rack dependency.
 
-  ref: http://mid.gmane.org/20091014221552.GA30624@dcvr.yhbt.net
+  ref: https://bogomips.org/unicorn-public/20091014221552.GA30624@dcvr.yhbt.net/
   Note: the workaround described in the article above only made
   the issue more subtle and we didn't notice them immediately.
 
diff --git a/Sandbox b/Sandbox
index 0760065..e10b36d 100644
--- a/Sandbox
+++ b/Sandbox
@@ -34,7 +34,7 @@ is the primary issue with sandboxing tools such as Bundler and Isolate.
 If you're bundling unicorn, use "bundle exec unicorn" (or "bundle exec
 unicorn_rails") to start unicorn with the correct environment variables
 
-ref: http://mid.gmane.org/9ECF07C4-5216-47BE-961D-AFC0F0C82060@internetfamo.us
+ref: https://bogomips.org/unicorn-public/9ECF07C4-5216-47BE-961D-AFC0F0C82060@internetfamo.us/
 
 Otherwise (if you choose to not sandbox your unicorn installation), we
 expect the tips for Isolate (below) apply, too.
@@ -43,7 +43,8 @@ expect the tips for Isolate (below) apply, too.
 
 This is no longer be an issue as of bundler 0.9.17
 
-ref: http://mid.gmane.org/8FC34B23-5994-41CC-B5AF-7198EF06909E@tramchase.com
+ref:
+https://bogomips.org/unicorn-public/8FC34B23-5994-41CC-B5AF-7198EF06909E@tramchase.com/
 
 === BUNDLE_GEMFILE for Capistrano users
 
diff --git a/examples/logrotate.conf b/examples/logrotate.conf
index 03fefc6..437f6c6 100644
--- a/examples/logrotate.conf
+++ b/examples/logrotate.conf
@@ -3,6 +3,9 @@
 #
 # See the logrotate(8) manpage for more information:
 #    http://linux.die.net/man/8/logrotate
+#
+# public logrotate-related discussion in our archives:
+#    https://bogomips.org/unicorn-public/?q=logrotate
 
 # Modify the following glob to match the logfiles your app writes to:
 /var/log/unicorn_app/*.log {
@@ -22,7 +25,19 @@
         # 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
+                # For systemd users, assuming you use two services
+                # (as recommended) to allow zero-downtime upgrades.
+                # Only one service needs to be started, but signaling
+                # both here is harmless as long as they're both enabled
+                systemctl kill -s SIGUSR1 unicorn@1.service
+                systemctl kill -s SIGUSR1 unicorn@2.service
+
+                # Examples for other process management systems appreciated
+                # Mail us at unicorn-public@bogomips.org
+                # (see above for archives)
+
+                # If you use a pid file and 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
diff --git a/examples/unicorn@.service b/examples/unicorn@.service
index 56aaec8..d95eb83 100644
--- a/examples/unicorn@.service
+++ b/examples/unicorn@.service
@@ -24,5 +24,10 @@ ExecReload = /bin/kill -HUP $MAINPID
 # adding a few seconds for scheduling differences:
 TimeoutStopSec = 62
 
+# Only kill the master process, it may be harmful to signal
+# workers via default "control-group" setting since some
+# Ruby extensions and applications misbehave on interrupts
+KillMode = process
+
 [Install]
 WantedBy = multi-user.target
diff --git a/lib/unicorn/oob_gc.rb b/lib/unicorn/oob_gc.rb
index a07978b..5572e59 100644
--- a/lib/unicorn/oob_gc.rb
+++ b/lib/unicorn/oob_gc.rb
@@ -43,8 +43,9 @@
 #     use Unicorn::OobGC, 2, %r{\A/(?:expensive/foo|more_expensive/foo)}
 #
 # Feedback from users of early implementations of this module:
-# * http://comments.gmane.org/gmane.comp.lang.ruby.unicorn.general/486
-# * http://article.gmane.org/gmane.comp.lang.ruby.unicorn.general/596
+# * https://bogomips.org/unicorn-public/0BFC98E9-072B-47EE-9A70-05478C20141B@lukemelia.com/
+# * https://bogomips.org/unicorn-public/AANLkTilUbgdyDv9W1bi-s_W6kq9sOhWfmuYkKLoKGOLj@mail.gmail.com/
+
 module Unicorn::OobGC
 
   # this pretends to be Rack middleware because it used to be