From f03ba7b7854fad362dc48dde44236f9495ed2cc8 Mon Sep 17 00:00:00 2001 From: Marcio Fernandes Date: Thu, 20 Jan 2022 13:49:30 +0000 Subject: [PATCH] . --- onlyone/__init__.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/onlyone/__init__.py b/onlyone/__init__.py index c82c123..cc6e2c8 100644 --- a/onlyone/__init__.py +++ b/onlyone/__init__.py @@ -6,9 +6,15 @@ from typing import List log = logging.getLogger(__name__) +def __is_process(cmd:str, arr): + item = " ".join(arr) + if(item.endswith(cmd) or item.endswith(cmd.replace("\"", "")) or item == cmd or item == cmd.replace("\"", "")): + return True + return False + def isrunning(cmd:str): for proc in psutil.process_iter(): - if cmd == " ".join(proc.cmdline()): + if __is_process(cmd,proc.cmdline()): return True return False @@ -23,10 +29,10 @@ def startprocess(cmd): def __killprocesses(killcmds:List, sysprocesses: List): - if killprocesses == None : + if killcmds == None : return False for proc in sysprocesses: - if any(" ".join(proc.cmdline()) == x for x in killcmds): + if any( __is_process(x, proc.cmdline()) for x in killcmds): proc.kill() log.info("[onlyone][__killprocesses] -> processed killed : " + proc.name + "(" + proc.id + ")") return False @@ -39,7 +45,7 @@ def killprocesses(killcmds:List): def __forceoneprocessinstance(cmd:str, processes:List): found = False for proc in processes: - if " ".join(proc.cmdline()) == cmd: + if __is_process(cmd, proc.cmdline()): if found: proc.kill() log.info("[onlyone][__forceoneprocessinstance] -> processed killed : " + proc.name + "(" + proc.id + ")")