diff --git a/openmtc-app/src/openmtc_app/flask_runner/__init__.py b/openmtc-app/src/openmtc_app/flask_runner/__init__.py index 2b102dd..4fcd608 100644 --- a/openmtc-app/src/openmtc_app/flask_runner/__init__.py +++ b/openmtc-app/src/openmtc_app/flask_runner/__init__.py @@ -1,9 +1,8 @@ from signal import SIGTERM, SIGINT +import gevent.signal from flask import (Flask, request, abort, redirect, url_for, Response as FlaskResponse) - -from gevent import signal as gevent_signal from gevent.pywsgi import WSGIServer from geventwebsocket.handler import WebSocketHandler from socketio import Server as SioServer, Middleware as SioMiddleware @@ -32,8 +31,8 @@ class SimpleFlaskRunner(AppRunner): _server = self._get_server() self.logger.debug("Serving on %s:%s", self.listen_on, self.port) - gevent_signal(SIGTERM, _server.stop) - gevent_signal(SIGINT, _server.stop) + gevent.signal(SIGTERM, _server.stop) + gevent.signal(SIGINT, _server.stop) _server.serve_forever() def add_route(self, route, handler, methods=("POST", "GET")): diff --git a/openmtc-app/src/openmtc_app/runner/__init__.py b/openmtc-app/src/openmtc_app/runner/__init__.py index 099ff22..10ddb28 100644 --- a/openmtc-app/src/openmtc_app/runner/__init__.py +++ b/openmtc-app/src/openmtc_app/runner/__init__.py @@ -1,4 +1,8 @@ -from gevent import spawn_later, wait +from signal import SIGTERM, SIGINT + +import gevent.signal +from gevent import spawn_later +from gevent.event import Event as GEventEvent from futile.logging import LoggerMixin @@ -22,7 +26,7 @@ class AppRunner(LoggerMixin): self.logger.exception("Error") raise finally: - self.logger.debug("Shutting down") + self.logger.info("Shutting down.") self._shutdown_app() for timer in self._timers: timer.kill() @@ -30,7 +34,10 @@ class AppRunner(LoggerMixin): def _run(self): self.m2m_app.run(self, self.m2m_ep) - wait() + shutdown_event = GEventEvent() + gevent.signal(SIGTERM, shutdown_event.set) + gevent.signal(SIGINT, shutdown_event.set) + shutdown_event.wait() def _shutdown_app(self): self.m2m_app.shutdown()