From b0f3b8a5e39febebf950ff361cd9f846dd87797e Mon Sep 17 00:00:00 2001 From: Noah Levitt Date: Sat, 11 Jul 2015 18:18:54 -0700 Subject: [PATCH] clean shutdown for brozzler-hq --- bin/brozzler-hq | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/bin/brozzler-hq b/bin/brozzler-hq index d5fcfca..bed16e2 100644 --- a/bin/brozzler-hq +++ b/bin/brozzler-hq @@ -13,6 +13,7 @@ import kombu import kombu.simple import json import umbra.hq +import signal arg_parser = argparse.ArgumentParser(prog=os.path.basename(__file__), description="brozzler-hq - headquarters of distributed brozzler crawl", @@ -201,7 +202,22 @@ class BrozzlerHQ: logging.info("brozzler-hq starting") +class ShutdownRequested(Exception): + pass + +def sigterm(signum, frame): + raise ShutdownRequested("shutdown requested (caught SIGTERM)") +def sigint(signum, frame): + raise ShutdownRequested("shutdown requested (caught SIGINT)") + +signal.signal(signal.SIGTERM, sigterm) +signal.signal(signal.SIGINT, sigint) + + db = BrozzlerHQDb(db_file=args.db_file) hq = BrozzlerHQ(amqp_url=args.amqp_url, db=db) -hq.run() +try: + hq.run() +except ShutdownRequested as e: + logging.info("{}".format(e))