diff options
author | Justin Mayer <entroP@gmail.com> | 2020-01-17 15:22:12 +0100 |
---|---|---|
committer | Justin Mayer <entroP@gmail.com> | 2020-01-17 15:22:12 +0100 |
commit | c23812cad6cd75b7dfed93cb56139b32cb3bd871 (patch) | |
tree | fe8fd1e2c925d8ca1ca49cbde0f073f5b0d501f4 | |
parent | ef02963138ff365b5c8a40f35f12434ed8232dac (diff) | |
download | pelican-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__.py | 6 |
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) |