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}")