These fixed the exceptions that popped up for me when stopping the evennia process on Windows - believe it or not, the wholly redundant try/except block for printing the success message in evenna_launcher actually removed a traceback.. But since Windows seems incredibly finicky, it'd probably be a good idea to see if it breaks anything for someone else using Windows first.
This commit is contained in:
parent
2578e6cbfc
commit
f086433e83
2 changed files with 28 additions and 20 deletions
|
|
@ -732,8 +732,12 @@ 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
|
||||||
print("Evennia:", succmsg)
|
try:
|
||||||
return
|
print("Evennia:", succmsg)
|
||||||
|
return
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
print("Evennia:", succmsg)
|
||||||
|
return
|
||||||
print("Evennia:", errmsg)
|
print("Evennia:", errmsg)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -185,26 +185,30 @@ def start_services(server_argv, portal_argv):
|
||||||
while True:
|
while True:
|
||||||
|
|
||||||
# this blocks until something is actually returned.
|
# this blocks until something is actually returned.
|
||||||
|
from twisted.internet.error import ReactorNotRunning
|
||||||
try:
|
try:
|
||||||
message, rc = processes.get()
|
try:
|
||||||
except KeyboardInterrupt:
|
message, rc = processes.get()
|
||||||
# this only matters in interactive mode
|
except KeyboardInterrupt:
|
||||||
|
# this only matters in interactive mode
|
||||||
|
break
|
||||||
|
|
||||||
|
# restart only if process stopped cleanly
|
||||||
|
if (message == "server_stopped" and int(rc) == 0 and
|
||||||
|
get_restart_mode(SERVER_RESTART) in ("True", "reload", "reset")):
|
||||||
|
print(PROCESS_RESTART.format(component="Server"))
|
||||||
|
SERVER = thread.start_new_thread(server_waiter, (processes, ))
|
||||||
|
continue
|
||||||
|
|
||||||
|
# normally the portal is not reloaded since it's run as a daemon.
|
||||||
|
if (message == "portal_stopped" and int(rc) == 0 and
|
||||||
|
get_restart_mode(PORTAL_RESTART) == "True"):
|
||||||
|
print(PROCESS_RESTART.format(component="Portal"))
|
||||||
|
PORTAL = thread.start_new_thread(portal_waiter, (processes, ))
|
||||||
|
continue
|
||||||
|
break
|
||||||
|
except ReactorNotRunning:
|
||||||
break
|
break
|
||||||
|
|
||||||
# restart only if process stopped cleanly
|
|
||||||
if (message == "server_stopped" and int(rc) == 0 and
|
|
||||||
get_restart_mode(SERVER_RESTART) in ("True", "reload", "reset")):
|
|
||||||
print(PROCESS_RESTART.format(component="Server"))
|
|
||||||
SERVER = thread.start_new_thread(server_waiter, (processes, ))
|
|
||||||
continue
|
|
||||||
|
|
||||||
# normally the portal is not reloaded since it's run as a daemon.
|
|
||||||
if (message == "portal_stopped" and int(rc) == 0 and
|
|
||||||
get_restart_mode(PORTAL_RESTART) == "True"):
|
|
||||||
print(PROCESS_RESTART.format(component="Portal"))
|
|
||||||
PORTAL = thread.start_new_thread(portal_waiter, (processes, ))
|
|
||||||
continue
|
|
||||||
break
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue