diff options
author | Rob Crittenden <rcritten@redhat.com> | 2008-06-05 23:07:13 -0400 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2008-06-09 22:11:08 -0400 |
commit | 48f2e3c3dbf74afa1bbb2e0971dc9a7f444c1447 (patch) | |
tree | 5cd69ede27f1197dfa23cf693a2e8ca4d70eb873 /ipa-server | |
parent | 77483ac8083d47caa472c436453132d322a82f8c (diff) | |
download | freeipa-48f2e3c3dbf74afa1bbb2e0971dc9a7f444c1447.tar.gz freeipa-48f2e3c3dbf74afa1bbb2e0971dc9a7f444c1447.tar.xz freeipa-48f2e3c3dbf74afa1bbb2e0971dc9a7f444c1447.zip |
Add our own SIGTERM handler so we can do clean shutdowns.
Also fix foreground mode.
450211
Diffstat (limited to 'ipa-server')
-rw-r--r-- | ipa-server/ipa-gui/ipa_webgui | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/ipa-server/ipa-gui/ipa_webgui b/ipa-server/ipa-gui/ipa_webgui index 5df578956..677fc9a5b 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 |