thirdparty/google_appengine/google/appengine/tools/dev_appserver_main.py
changeset 2864 2e0b0af889be
parent 2413 d0b7dac5325c
--- a/thirdparty/google_appengine/google/appengine/tools/dev_appserver_main.py	Sat Sep 05 14:04:24 2009 +0200
+++ b/thirdparty/google_appengine/google/appengine/tools/dev_appserver_main.py	Sun Sep 06 23:31:53 2009 +0200
@@ -68,10 +68,15 @@
 import logging
 import os
 import re
+import signal
 import sys
 import traceback
 import tempfile
 
+logging.basicConfig(
+    level=logging.INFO,
+    format='%(levelname)-8s %(asctime)s %(filename)s:%(lineno)s] %(message)s')
+
 
 def SetGlobals():
   """Set various global variables involving the 'google' package.
@@ -379,6 +384,14 @@
   return server
 
 
+def SigTermHandler(signum, frame):
+  """Handler for TERM signal.
+
+  Raises a KeyboardInterrupt to perform a graceful shutdown on SIGTERM signal.
+  """
+  raise KeyboardInterrupt()
+
+
 def main(argv):
   """Runs the development application server."""
   args, option_dict = ParseArguments(argv)
@@ -419,9 +432,7 @@
 
   option_dict['root_path'] = os.path.realpath(root_path)
 
-  logging.basicConfig(
-    level=log_level,
-    format='%(levelname)-8s %(asctime)s %(filename)s:%(lineno)s] %(message)s')
+  logging.getLogger().setLevel(log_level)
 
   config = None
   try:
@@ -461,6 +472,8 @@
       allow_skipped_files=allow_skipped_files,
       static_caching=static_caching)
 
+  signal.signal(signal.SIGTERM, SigTermHandler)
+
   logging.info('Running application %s on port %d: http://%s:%d',
                config.application, port, serve_address, port)
   try: