Cleaner handling of KeyboardInterrupt exception
This commit is contained in:
parent
f086433e83
commit
870b417855
1 changed files with 4 additions and 7 deletions
|
|
@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue