diff --git a/evennia/server/evennia_launcher.py b/evennia/server/evennia_launcher.py index c83d869336..ee6c955366 100644 --- a/evennia/server/evennia_launcher.py +++ b/evennia/server/evennia_launcher.py @@ -971,16 +971,17 @@ def start_server_interactive(): print("... Stopped Server with Ctrl-C.") else: print("... Server stopped (leaving interactive mode).") - stop_server_only(when_stopped=_iserver) + stop_server_only(when_stopped=_iserver, interactive=True) -def stop_server_only(when_stopped=None): +def stop_server_only(when_stopped=None, interactive=False): """ Only stop the Server-component of Evennia (this is not useful except for debug) Args: when_stopped (callable): This will be called with no arguments when Server has stopped (or if it had already stopped when this is called). + interactive (bool, optional): Set if this is called as part of the interactive reload mechanism. """ def _server_stopped(*args): @@ -995,7 +996,10 @@ def stop_server_only(when_stopped=None): if srun: print("Server stopping ...") wait_for_status_reply(_server_stopped) - send_instruction(SSHUTD, {}) + if interactive: + send_instruction(SRELOAD, {}) + else: + send_instruction(SSHUTD, {}) else: if when_stopped: when_stopped() @@ -1005,6 +1009,8 @@ def stop_server_only(when_stopped=None): def _portal_not_running(fail): print("Evennia is not running.") + if interactive: + print("Start Evennia normally first, then use `istart` to switch to interactive mode.") _reactor_stop() send_instruction(PSTATUS, None, _portal_running, _portal_not_running) diff --git a/evennia/server/server.py b/evennia/server/server.py index 5a225704c2..0e9193f723 100644 --- a/evennia/server/server.py +++ b/evennia/server/server.py @@ -192,9 +192,9 @@ class Evennia(object): from twisted.internet.defer import Deferred if hasattr(self, "web_root"): d = self.web_root.empty_threadpool() - d.addCallback(lambda _: self.shutdown("shutdown", _reactor_stopping=True)) + d.addCallback(lambda _: self.shutdown("reload", _reactor_stopping=True)) else: - d = Deferred(lambda _: self.shutdown("shutdown", _reactor_stopping=True)) + d = Deferred(lambda _: self.shutdown("reload", _reactor_stopping=True)) d.addCallback(lambda _: reactor.stop()) reactor.callLater(1, d.callback, None) reactor.sigInt = _wrap_sigint_handler