From 346f9ca2e1a8818072093e71eef574d603051bd6 Mon Sep 17 00:00:00 2001 From: Moritz Kiemer Date: Tue, 22 Oct 2024 13:59:15 +0200 Subject: [PATCH] piggyback-hub: log reason for shutdown Change-Id: I40a006a865068ae9c077a40d30215244f9670e81 --- cmk/piggyback_hub/main.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/cmk/piggyback_hub/main.py b/cmk/piggyback_hub/main.py index ae3bff7923a..7407cce0da3 100644 --- a/cmk/piggyback_hub/main.py +++ b/cmk/piggyback_hub/main.py @@ -123,19 +123,22 @@ def run_piggyback_hub(logger: logging.Logger, omd_root: Path) -> int: for p in processes: p.start() - def terminate_all_processes() -> int: - logger.info("Stopping: %s", APP_NAME) + def terminate_all_processes(reason: str) -> int: + logger.info("Stopping: %s (%s)", APP_NAME.value, reason) for p in processes: p.terminate() return 0 - signal.signal(signal.SIGTERM, lambda signum, frame: sys.exit(terminate_all_processes())) + signal.signal( + signal.SIGTERM, lambda signum, frame: sys.exit(terminate_all_processes("received SIGTERM")) + ) # All processes should run forever. Die if either finishes. for proc in cycle(processes): proc.join(timeout=5) if not proc.is_alive(): - return terminate_all_processes() + assert isinstance(proc, (ReceivingProcess, SendingPayloadProcess)) # mypy :-/ + return terminate_all_processes(f"{proc.task_name} died") raise RuntimeError("Unreachable code reached") @@ -148,7 +151,7 @@ def main(argv: list[str] | None = None) -> int: logger = _setup_logging(args) omd_root = Path(args.omd_root) - logger.info("Starting: %s", APP_NAME) + logger.info("Starting: %s", APP_NAME.value) if (ec := run_initial_connection_test(logger, omd_root)) != 0: return ec @@ -163,5 +166,5 @@ def main(argv: list[str] | None = None) -> int: except Exception as exc: if args.debug: raise - logger.exception("Exception: %s: %s", APP_NAME, exc) + logger.exception("Exception: %s: %s", APP_NAME.value, exc) return 1