This commit is contained in:
parent
1366a23a6b
commit
a72e4b16a3
28
gradio_ui.py
28
gradio_ui.py
|
|
@ -100,15 +100,27 @@ def run_eval(
|
||||||
def stop_eval():
|
def stop_eval():
|
||||||
global current_process, should_stop
|
global current_process, should_stop
|
||||||
should_stop = True
|
should_stop = True
|
||||||
if current_process and current_process.poll() is None:
|
|
||||||
try:
|
killed_pids = []
|
||||||
os.killpg(os.getpgid(current_process.pid), signal.SIGKILL)
|
|
||||||
except Exception as e:
|
try:
|
||||||
return f"[Error stopping process group] {e}\n"
|
for proc in psutil.process_iter(["pid", "name", "cmdline"]):
|
||||||
finally:
|
try:
|
||||||
|
cmdline = " ".join(proc.info["cmdline"])
|
||||||
|
if "evalscope" in cmdline and "perf" in cmdline:
|
||||||
|
killed_pids.append(proc.pid)
|
||||||
|
proc.kill()
|
||||||
|
except (psutil.NoSuchProcess, psutil.AccessDenied):
|
||||||
|
continue
|
||||||
|
|
||||||
|
if killed_pids:
|
||||||
current_process = None
|
current_process = None
|
||||||
return "[Force stopped entire process group]\n"
|
return f"[Force killed evalscope processes: {killed_pids}]\n"
|
||||||
return "[No active process]\n"
|
else:
|
||||||
|
return "[No evalscope process found]\n"
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
return f"[Error in stop_eval()] {e}\n"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue