summaryrefslogtreecommitdiff
path: root/cherrypy/_cpengine.py
diff options
context:
space:
mode:
authorRobert Brewer <fumanchu@aminus.org>2006-08-05 17:44:49 +0000
committerRobert Brewer <fumanchu@aminus.org>2006-08-05 17:44:49 +0000
commitc066727b97ffcb4ace2ece56514b85d075dfdaad (patch)
treed7156de1bc7019ca6cb8c7f40d7237efb3267614 /cherrypy/_cpengine.py
parentc9aac9e0a293c56e3d586023cd3443dc5c75ca3d (diff)
downloadcherrypy-git-c066727b97ffcb4ace2ece56514b85d075dfdaad.tar.gz
Fix for #540.
Diffstat (limited to 'cherrypy/_cpengine.py')
-rw-r--r--cherrypy/_cpengine.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/cherrypy/_cpengine.py b/cherrypy/_cpengine.py
index 54c99e20..91db9b36 100644
--- a/cherrypy/_cpengine.py
+++ b/cherrypy/_cpengine.py
@@ -2,6 +2,7 @@
import cgi
import os
+import signal
import sys
import threading
import time
@@ -22,6 +23,16 @@ def fileattr(m):
return getattr(m, "__file__", None)
+def signal_handler(signum, frame):
+ if signum in (signal.SIGHUP,):
+ cherrypy.engine.reexec()
+ else:
+ cherrypy.server.stop()
+ cherrypy.engine.stop()
+signal.signal(signal.SIGHUP, signal_handler)
+signal.signal(signal.SIGTERM, signal_handler)
+
+
class Engine(object):
"""The application engine, which exposes a request interface to (HTTP) servers."""