mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 08:48:13 +00:00
Only prevent launch if we find unrelated processes
This commit is contained in:
14
src/init.py
14
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
|
||||
|
||||
Reference in New Issue
Block a user