summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2008-06-05 23:07:13 -0400
committerRob Crittenden <rcritten@redhat.com>2008-06-09 22:11:08 -0400
commit48f2e3c3dbf74afa1bbb2e0971dc9a7f444c1447 (patch)
tree5cd69ede27f1197dfa23cf693a2e8ca4d70eb873
parent77483ac8083d47caa472c436453132d322a82f8c (diff)
downloadfreeipa.git-48f2e3c3dbf74afa1bbb2e0971dc9a7f444c1447.tar.gz
freeipa.git-48f2e3c3dbf74afa1bbb2e0971dc9a7f444c1447.tar.xz
freeipa.git-48f2e3c3dbf74afa1bbb2e0971dc9a7f444c1447.zip
Add our own SIGTERM handler so we can do clean shutdowns.
Also fix foreground mode. 450211
-rw-r--r--ipa-server/ipa-gui/ipa_webgui15
1 files changed, 13 insertions, 2 deletions
diff --git a/ipa-server/ipa-gui/ipa_webgui b/ipa-server/ipa-gui/ipa_webgui
index 5df57895..677fc9a5 100644
--- a/ipa-server/ipa-gui/ipa_webgui
+++ b/ipa-server/ipa-gui/ipa_webgui
@@ -21,6 +21,7 @@ import os, sys, pwd, grp
from optparse import OptionParser
import traceback
import logging
+import signal
def usage():
print "ipa_webgui [-f|--foreground] [-d|--debug]"
@@ -138,7 +139,7 @@ def main():
except OSError, e:
log.error("Could not set effective user id: %s" % e)
- if devel:
+ if foreground:
logging.basicConfig(level=loglevel,
format='%(asctime)s %(name)s %(levelname)s %(message)s',
stream=sys.stderr)
@@ -161,9 +162,19 @@ def main():
import cherrypy
cherrypy.lowercase_api = True
+ try:
+ if hasattr(signal, "SIGTERM"):
+ def SIGTERM(signum=None, frame=None):
+ cherrypy.server.stop()
+ signal.signal(signal.SIGTERM, SIGTERM)
+ except ValueError, _signal_exc:
+ if _signal_exc.args[0] != "signal only works in main thread":
+ raise
+
+
# Shut down the logging set up here so that CherryPy logging can take
# over. TurboGears configuration errors will not be caught.
- if not devel:
+ if not foreground:
logging.shutdown()
# Load the config - look for a local file first for development