From 0e6fe37e4d988bc568610cc09fcc92d5114e1d4c Mon Sep 17 00:00:00 2001 From: RodoMa92 Date: Wed, 28 Aug 2024 12:14:37 +0200 Subject: [PATCH] Properly handle systemd signals --- backend/decky_loader/main.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/decky_loader/main.py b/backend/decky_loader/main.py index c268b387..1c280453 100644 --- a/backend/decky_loader/main.py +++ b/backend/decky_loader/main.py @@ -11,6 +11,7 @@ # Full imports import multiprocessing multiprocessing.freeze_support() +import signal from asyncio import AbstractEventLoop, CancelledError, Task, all_tasks, current_task, gather, new_event_loop, set_event_loop, sleep from logging import basicConfig, getLogger from os import path @@ -258,6 +259,11 @@ def main(): # Append the system and user python paths sys.path.extend(get_system_pythonpaths()) + #Catch a sigint (CTRL-C) coming from systemd and shut down gracefully + #TODO: Handle the Windows case in the future + if ON_LINUX: + signal.signal(signal.SIGINT, PluginManager.shutdown) + logger.info(f"Starting Decky version {get_loader_version()}") loop = new_event_loop()