Verified Commit e855f120 authored by Jakob Moser's avatar Jakob Moser
Browse files

Handle SIGINT and SIGTERM gracefully

parent f48cb2c6
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
import logging
from pathlib import Path
import signal
from threading import Thread
from types import FrameType

from poolpay import db, paths
from poolpay.card.Pirc522CardReader import Pirc522CardReader
@@ -60,5 +62,18 @@ def on_message_received(message: Message) -> None:


server.on_receive(on_message_received)


def handle_signal(signal_number: int, stack_frame: FrameType | None) -> None:
    logging.info("Stop requested")
    logging.info("Stopping wire server")
    server.stop()
    logging.info("App will now automatically terminate")


logging.info("Registering SIGINT and SIGTERM handlers")
signal.signal(signal.SIGINT, handle_signal)  # for keyboard interrupt
signal.signal(signal.SIGTERM, handle_signal)  # for systemd interrupt

logging.info("Waiting for vault unlock password via wire server")
server.start()