From 0d714c976db47b971101b3d26313794b3554776a Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 27 Feb 2019 09:50:52 +0000 Subject: process: Make sending signals (kill) externally visible Change-Id: I87bba8a8c467ba5936e0b6604d8abb9432e5e7a8 --- src/osmo_gsm_tester/process.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/osmo_gsm_tester/process.py b/src/osmo_gsm_tester/process.py index 1e53aba..3050f83 100644 --- a/src/osmo_gsm_tester/process.py +++ b/src/osmo_gsm_tester/process.py @@ -145,6 +145,12 @@ class Process(log.Origin): def send_signal(self, sig): os.kill(self.process_obj.pid, sig) + def kill(self, sig): + """Kills the process with the given signal and remembers it.""" + self.log('Terminating (%s)' % sig.name) + self.send_signal(sig) + self.killed = sig + def terminate(self): if self.process_obj is None: return @@ -153,23 +159,17 @@ class Process(log.Origin): while True: # first try SIGINT to allow stdout+stderr flushing - self.log('Terminating (SIGINT)') - self.send_signal(signal.SIGINT) - self.killed = signal.SIGINT + self.kill(signal.SIGINT) if self._poll_termination(): break # SIGTERM maybe? - self.log('Terminating (SIGTERM)') - self.send_signal(signal.SIGTERM) - self.killed = signal.SIGTERM + self.kill(signal.SIGTERM) if self._poll_termination(): break # out of patience - self.log('Terminating (SIGKILL)') - self.send_signal(signal.SIGKILL) - self.killed = signal.SIGKILL + self.kill(signal.SIGKILL) break; self.process_obj.wait() -- cgit v1.2.3