Only prevent launch if we find unrelated processes

This commit is contained in:
Brett Williams
2024-08-24 02:22:38 -05:00
parent e35a5a689c
commit 3fda87935e

View File

@@ -32,9 +32,17 @@ def run(server_only=False) -> int:
def existing_process(process_name): def existing_process(process_name):
import psutil import psutil
for proc in psutil.process_iter(['pid', 'name']): current_pid = os.getpid()
if proc.info['name'].lower() == process_name.lower() and proc.info['pid'] != os.getpid(): current_process = psutil.Process(current_pid)
return proc 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 return None
# setup logging # setup logging