Proper exit on keyboard interrupt

This commit is contained in:
HelloZeroNet 2016-03-12 23:09:57 +01:00
parent 555c136143
commit 78a7542b4d

View file

@ -8,6 +8,13 @@ from Config import config
last_error = None last_error = None
def shutdown():
try:
gevent.spawn(sys.modules["main"].file_server.stop)
gevent.spawn(sys.modules["main"].ui_server.stop)
except Exception, err:
print "Proper shutdown error: %s" % err
sys.exit(0)
# Store last error, ignore notify, allow manual error logging # Store last error, ignore notify, allow manual error logging
def handleError(*args): def handleError(*args):
@ -19,6 +26,8 @@ def handleError(*args):
silent = False silent = False
if args[0].__name__ != "Notify": if args[0].__name__ != "Notify":
last_error = args last_error = args
if args[0].__name__ == "KeyboardInterrupt":
shutdown()
if not silent and args[0].__name__ != "Notify": if not silent and args[0].__name__ != "Notify":
logging.exception("Unhandled exception") logging.exception("Unhandled exception")
sys.__excepthook__(*args) sys.__excepthook__(*args)
@ -26,6 +35,8 @@ def handleError(*args):
# Ignore notify errors # Ignore notify errors
def handleErrorNotify(*args): def handleErrorNotify(*args):
if args[0].__name__ == "KeyboardInterrupt":
shutdown()
if args[0].__name__ != "Notify": if args[0].__name__ != "Notify":
logging.exception("Unhandled exception") logging.exception("Unhandled exception")
sys.__excepthook__(*args) sys.__excepthook__(*args)