From f390ff144de93f3b33c2b8a854f487e965230ed2 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Mon, 11 Mar 2019 14:35:58 -0300 Subject: [PATCH] handle sigint --- lbrynet/extras/cli.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lbrynet/extras/cli.py b/lbrynet/extras/cli.py index 6a67b2515..ba256e285 100644 --- a/lbrynet/extras/cli.py +++ b/lbrynet/extras/cli.py @@ -1,5 +1,6 @@ import os import sys +import signal import pathlib import json import asyncio @@ -272,8 +273,20 @@ def main(argv=None): log.addHandler(loggly_handler) daemon = Daemon(conf) + started = False + def __exit(): + if started: + daemon.stop_event.set() + else: + raise GracefulExit() + try: + loop.add_signal_handler(signal.SIGINT, __exit) + loop.add_signal_handler(signal.SIGTERM, __exit) + except NotImplementedError: + pass # Not implemented on Windows try: loop.run_until_complete(daemon.start()) + started = True loop.run_until_complete(daemon.stop_event.wait()) except (GracefulExit, KeyboardInterrupt): pass