diff --git a/src/init.py b/src/init.py index 82bdfa3..8be5ba9 100644 --- a/src/init.py +++ b/src/init.py @@ -32,9 +32,17 @@ def run(server_only=False) -> int: def existing_process(process_name): import psutil - for proc in psutil.process_iter(['pid', 'name']): - if proc.info['name'].lower() == process_name.lower() and proc.info['pid'] != os.getpid(): - return proc + current_pid = os.getpid() + current_process = psutil.Process(current_pid) + for proc in psutil.process_iter(['pid', 'name', 'ppid']): + proc_name = proc.info['name'].lower().rstrip('.exe') + if proc_name == process_name.lower() and proc.info['pid'] != current_pid: + if proc.info['pid'] == current_process.ppid(): + continue # parent process + elif proc.info['ppid'] == current_pid: + continue # child process + else: + return proc # unrelated process return None # setup logging