From cc6c7dcbf72f2596e5eaea92df94d7124880bf73 Mon Sep 17 00:00:00 2001 From: shay-k <39336226+shay-k@users.noreply.github.com> Date: Tue, 2 Mar 2021 15:25:27 +0200 Subject: [PATCH] shut down gracefully on SIGTERM. (#1) --- jupyter_matlab_proxy/app.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/jupyter_matlab_proxy/app.py b/jupyter_matlab_proxy/app.py index b9b6c98a..5b7e6c30 100644 --- a/jupyter_matlab_proxy/app.py +++ b/jupyter_matlab_proxy/app.py @@ -7,6 +7,7 @@ import asyncio import logging import json +import signal from . import settings from .app_state import AppState from .util.exceptions import LicensingError @@ -398,4 +399,16 @@ def main(): runner, host=app["settings"]["host_interface"], port=app["settings"]["app_port"] ) loop.run_until_complete(site.start()) + + loop.add_signal_handler(signal.SIGTERM, lambda: loop.stop()) loop.run_forever() + + async def shutdown(): + logger.info("Shutting down MATLAB proxy-app") + await app.shutdown() + await app.cleanup() + # waiting here to allow matlab to finish exiting. + await asyncio.sleep(5) + + loop.run_until_complete(shutdown()) +