about summary refs log tree commit homepage
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rw-r--r--bin/mongrel_rails36
1 files changed, 20 insertions, 16 deletions
diff --git a/bin/mongrel_rails b/bin/mongrel_rails
index 9b9ea60..9d58628 100644
--- a/bin/mongrel_rails
+++ b/bin/mongrel_rails
@@ -124,23 +124,27 @@ class StartCommand < Mongrel::Command::Command
     server.register("/", rails)
     server.run
 
-    # graceful shutdown
-    trap("TERM") {
-      server.stop
-    }
-    
-    # rails reload
-    trap("HUP") {
-      server.stop
-      @restart = true
-    }
+    # signal trapping just applies to posix systems
+    # TERM is a valid signal, but still doesn't gracefuly shutdown on win32.
+    if RUBY_PLATFORM !~ /mswin/
+      # graceful shutdown
+      trap("TERM") {
+        server.stop
+      }
+
+      # rails reload
+      trap("HUP") {
+        server.stop
+        @restart = true
+      }
+
+      # restart
+      trap("USR2") {
+        server.stop
+        @restart = true
+      }
+    end
     
-    # restart
-    trap("USR2") {
-      server.stop
-      @restart = true
-    }
-
     begin
       STDERR.puts "Server ready."
       server.acceptor.join