diff options
author | Robert Brewer <fumanchu@aminus.org> | 2006-08-05 17:44:49 +0000 |
---|---|---|
committer | Robert Brewer <fumanchu@aminus.org> | 2006-08-05 17:44:49 +0000 |
commit | c066727b97ffcb4ace2ece56514b85d075dfdaad (patch) | |
tree | d7156de1bc7019ca6cb8c7f40d7237efb3267614 /cherrypy/_cpengine.py | |
parent | c9aac9e0a293c56e3d586023cd3443dc5c75ca3d (diff) | |
download | cherrypy-git-c066727b97ffcb4ace2ece56514b85d075dfdaad.tar.gz |
Fix for #540.
Diffstat (limited to 'cherrypy/_cpengine.py')
-rw-r--r-- | cherrypy/_cpengine.py | 11 |
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.""" |