Fix: isProcessExist under Windows

This commit is contained in:
hgjazhgj 2023-05-27 22:16:37 +08:00
parent b4af10b56b
commit f227b8fbc6

View File

@ -1,14 +1,19 @@
import os import os
import platform
import time import time
if platform.system() == "Windows":
def is_process_exist(pid): def isProcessExist(pid):
try: with os.popen(f'tasklist /NH /FI "PID eq {pid}"') as p:
os.kill(pid, 0) return p.read()[0] == "\n"
except OSError: else:
return False def isProcessExist(pid):
else: try:
return True os.kill(pid, 0)
except OSError:
return False
else:
return True
def orphanSlayer(ppid, spid, prekill = ""): def orphanSlayer(ppid, spid, prekill = ""):
@ -31,8 +36,8 @@ def orphanSlayer(ppid, spid, prekill = ""):
Lme曰你可以通过经常拉屎来结交朋友 Lme曰你可以通过经常拉屎来结交朋友
""" """
while is_process_exist(ppid): while isProcessExist(ppid):
if not is_process_exist(spid): if not isProcessExist(spid):
return return
time.sleep(1) time.sleep(1)
if prekill: if prekill: