diff options
author | Alvaro Neira Ayuso <aneira@soleta.eu> | 2020-02-23 18:06:01 +0100 |
---|---|---|
committer | Alvaro Neira Ayuso <aneira@soleta.eu> | 2020-02-24 09:35:24 +0100 |
commit | 6f7ba325b818ae6fcfd373566afdb72eb4f55d55 (patch) | |
tree | c73b7fe3a332b2dcfd1a39767a3949e755fcac63 | |
parent | 583057bd6953548aa429a71f5f87c30a52c49840 (diff) |
Modify way to close PID process
With our client disconnection, we hid that the ogClient process will be
closed too. This new way only close the subprocess keeping the ogClient
still working.
-rw-r--r-- | src/ogRest.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/src/ogRest.py b/src/ogRest.py index 25a111f..f6b8ca4 100644 --- a/src/ogRest.py +++ b/src/ogRest.py @@ -291,6 +291,20 @@ class ogRest(): return 0 + def kill_process(self): + try: + os.kill(self.proc.pid, signal.SIGTERM) + except: + pass + + time.sleep(2) + try: + os.kill(self.proc.pid, signal.SIGKILL) + except: + pass + + self.state = ThreadState.IDLE + def process_reboot(self, client): response = restResponse(ogResponses.IN_PROGRESS) client.send(response.get()) @@ -298,10 +312,7 @@ class ogRest(): client.disconnect() if self.state == ThreadState.BUSY: - os.killpg(os.getpgid(self.proc.pid), signal.SIGTERM) - time.sleep(2) - os.killpg(os.getpgid(self.proc.pid), signal.SIGKILL) - self.state = ThreadState.IDLE + self.kill_process() threading.Thread(target=ogThread.reboot).start() @@ -312,10 +323,7 @@ class ogRest(): client.disconnect() if self.state == ThreadState.BUSY: - os.killpg(os.getpgid(self.proc.pid), signal.SIGTERM) - time.sleep(2) - os.killpg(os.getpgid(self.proc.pid), signal.SIGKILL) - self.state = ThreadState.IDLE + self.kill_process() threading.Thread(target=ogThread.poweroff).start() @@ -358,10 +366,7 @@ class ogRest(): def process_stop(self, client): client.disconnect() if self.state == ThreadState.BUSY: - os.killpg(os.getpgid(self.proc.pid), signal.SIGTERM) - time.sleep(2) - os.killpg(os.getpgid(self.proc.pid), signal.SIGKILL) - self.state = ThreadState.IDLE + self.kill_process() self.terminated = True sys.exit(0) |