diff --git a/plinth/__main__.py b/plinth/__main__.py index 8cbab88ae..d6b472c8a 100644 --- a/plinth/__main__.py +++ b/plinth/__main__.py @@ -126,6 +126,11 @@ def adapt_config(arguments): setattr(cfg, argument_name, argument_value) +def on_web_server_stop(): + """Stop all other threads since web server is trying to exit.""" + setup.stop() + + def main(): """Intialize and start the application""" arguments = parse_arguments() @@ -173,7 +178,7 @@ def main(): setup.run_setup_in_background() web_server.init() - web_server.run() + web_server.run(on_web_server_stop) if __name__ == '__main__': diff --git a/plinth/web_server.py b/plinth/web_server.py index d2b06fc38..74ac3d211 100644 --- a/plinth/web_server.py +++ b/plinth/web_server.py @@ -23,7 +23,7 @@ import os import cherrypy -from . import cfg, log, module_loader, setup, web_framework +from . import cfg, log, module_loader, web_framework logger = logging.getLogger(__name__) @@ -89,13 +89,8 @@ def init(): cherrypy.engine.signal_handler.subscribe() -def on_server_stop(): - """Stop all other threads since web server is trying to exit.""" - setup.stop() - - -def run(): +def run(on_web_server_stop): """Start the web server and block it until exit.""" cherrypy.engine.start() - cherrypy.engine.subscribe('stop', on_server_stop) + cherrypy.engine.subscribe('stop', on_web_server_stop) cherrypy.engine.block()