Cleaner handling of KeyboardInterrupt exception

This commit is contained in:
Tehom 2016-11-25 01:37:03 -05:00 committed by Griatch
parent f086433e83
commit 870b417855

View file

@ -714,12 +714,13 @@ def kill(pidfile, signal=SIG, succmsg="", errmsg="",
f.write("shutdown") f.write("shutdown")
try: try:
if os.name == 'nt': if os.name == 'nt':
from win32api import GenerateConsoleCtrlEvent from win32api import GenerateConsoleCtrlEvent, SetConsoleCtrlHandler
try: try:
# Windows can only send a SIGINT-like signal to # Windows can only send a SIGINT-like signal to
# *every* process spawned off the same console, so we must # *every* process spawned off the same console, so we must
# avoid killing ourselves here. # avoid killing ourselves here.
GenerateConsoleCtrlEvent(CTRL_C_EVENT, 0) GenerateConsoleCtrlEvent(CTRL_C_EVENT, 0)
SetConsoleCtrlHandler(None, True)
except KeyboardInterrupt: except KeyboardInterrupt:
pass pass
else: else:
@ -732,12 +733,8 @@ def kill(pidfile, signal=SIG, succmsg="", errmsg="",
"The PID file 'server/%(pidfile)s' seems stale. "\ "The PID file 'server/%(pidfile)s' seems stale. "\
"Try removing it." % {'pid': pid, 'pidfile': pidfile}) "Try removing it." % {'pid': pid, 'pidfile': pidfile})
return return
try: print("Evennia:", succmsg)
print("Evennia:", succmsg) return
return
except KeyboardInterrupt:
print("Evennia:", succmsg)
return
print("Evennia:", errmsg) print("Evennia:", errmsg)