summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Mayer <entroP@gmail.com>2020-01-17 15:22:12 +0100
committerJustin Mayer <entroP@gmail.com>2020-01-17 15:22:12 +0100
commitc23812cad6cd75b7dfed93cb56139b32cb3bd871 (patch)
treefe8fd1e2c925d8ca1ca49cbde0f073f5b0d501f4
parentef02963138ff365b5c8a40f35f12434ed8232dac (diff)
downloadpelican-listen-interrupt.tar.gz
Exit web server gracefully when user taps CTRL-Clisten-interrupt
Users were previously met with an ugly traceback. Now `pelican --listen` invocations, when quit via CTRL-C, are followed instead by a more user-friendly message.
-rw-r--r--pelican/__init__.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/pelican/__init__.py b/pelican/__init__.py
index a3298ff7..84ec9a49 100644
--- a/pelican/__init__.py
+++ b/pelican/__init__.py
@@ -476,6 +476,12 @@ def listen(server, port, output, excqueue=None):
excqueue.put(traceback.format_exception_only(type(e), e)[-1])
return
+ except KeyboardInterrupt:
+ stop_msg = "Keyboard interrupt received. Shutting down server."
+ logger.info(stop_msg)
+ print("\n{}".format(stop_msg))
+ httpd.socket.close()
+
def main(argv=None):
args = parse_arguments(argv)