daemon/grpc: shifted kill signal handling to grpc server who will handle complete shutdown, no longer done by CoreEmu directly
This commit is contained in:
parent
b5b7b8cdf9
commit
03775c2c3c
2 changed files with 14 additions and 29 deletions
|
@ -1,7 +1,8 @@
|
|||
import atexit
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import signal
|
||||
import sys
|
||||
import tempfile
|
||||
import time
|
||||
from concurrent import futures
|
||||
|
@ -120,11 +121,20 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
self.coreemu: CoreEmu = coreemu
|
||||
self.running: bool = True
|
||||
self.server: Optional[grpc.Server] = None
|
||||
atexit.register(self._exit_handler)
|
||||
# catch signals
|
||||
signal.signal(signal.SIGHUP, self._signal_handler)
|
||||
signal.signal(signal.SIGINT, self._signal_handler)
|
||||
signal.signal(signal.SIGTERM, self._signal_handler)
|
||||
signal.signal(signal.SIGUSR1, self._signal_handler)
|
||||
signal.signal(signal.SIGUSR2, self._signal_handler)
|
||||
|
||||
def _exit_handler(self) -> None:
|
||||
logger.debug("catching exit, stop running")
|
||||
def _signal_handler(self, signal_number: int, _) -> None:
|
||||
logger.info("caught signal: %s", signal_number)
|
||||
self.coreemu.shutdown()
|
||||
self.running = False
|
||||
if self.server:
|
||||
self.server.stop(None)
|
||||
sys.exit(signal_number)
|
||||
|
||||
def _is_running(self, context) -> bool:
|
||||
return self.running and context.is_active()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue