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()