diff --git a/chamber_control.py b/chamber_control.py index c96c3ef..1f74eda 100644 --- a/chamber_control.py +++ b/chamber_control.py @@ -417,8 +417,17 @@ async def main(): c.check_connections() loop = asyncio.get_running_loop() - for sig in (signal.SIGINT, signal.SIGTERM): - loop.add_signal_handler(sig, c.stop) + try: + # Unix only + for sig in (signal.SIGINT, signal.SIGTERM): + loop.add_signal_handler(sig, c.stop) + except NotImplementedError: + # Windows Fallback + signal.signal(signal.SIGINT, lambda s, f: c.stop()) + try: + signal.signal(signal.SIGTERM, lambda s, f: c.stop()) + except (OSError, AttributeError): + pass # Run tasks try: