Source code for pi_weather.utils.exit_handlers
"""Logic for program exit handlers"""
from types import FrameType
from pi_weather.utils.logs import get_logger
logger = get_logger(__name__)
# Exit options:
# - SIGINT (2) : triggered by a `Ctrl+C`
# - SIGTERM (15) : triggered by a `docker stop` or the watchtower triggered image update
# - SIGKILL (9) : triggered by a `docker kill`
# note: SIGKILL (9) + SIGSTOP cannot be caught or ignored
# docs: https://en.wikipedia.org/wiki/Signal_(IPC)
[docs]
def _handler_exit(signum: int, frame: FrameType | None) -> None:
"""
Function to handle program exit
:param signum: Signal number
:type signum: int
:param frame: Frame
:type frame: FrameType | None
:return: Nothing
:rtype: None
"""
logger.fatal(f"Final exit by signal {signum}")