--- 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: