From c68529d42d220ca84262e0814c601c28dd2f7eb4 Mon Sep 17 00:00:00 2001 From: Alexander Zaft Date: Wed, 4 Oct 2023 10:28:13 +0200 Subject: [PATCH] server: handle signals during startup previously, the signal handler would ignore SIGINTs and SIGTERMs during server startup, so if there would be e.g. non-respoinding hardware, the program could not be exited until a timeout occured. For now, the default signal handler will be called. Later, we should consider cleaning up the partial started modules. Change-Id: I5bb802b5d996bb03dfa2679c1497e298fde1dd17 Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/32247 Tested-by: Jenkins Automated Tests Reviewed-by: Alexander Zaft --- frappy/server.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/frappy/server.py b/frappy/server.py index 5152728c..e0d0c444 100644 --- a/frappy/server.py +++ b/frappy/server.py @@ -108,9 +108,13 @@ class Server: signal.signal(signal.SIGINT, self.signal_handler) signal.signal(signal.SIGTERM, self.signal_handler) - def signal_handler(self, _num, _frame): + def signal_handler(self, num, frame): if hasattr(self, 'interface') and self.interface: self.shutdown() + else: + # TODO: we should probably clean up the already initialized modules + # when getting an interrupt while the server is starting + signal.default_int_handler(num, frame) def start(self): if not DaemonContext: