From 791d63cd81f5a795c7e0227cb223abe2cea6a959 Mon Sep 17 00:00:00 2001 From: royjr Date: Sat, 25 Jul 2026 03:03:28 -0400 Subject: [PATCH] Update host.py --- openpilot/tools/wgpu/host.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/openpilot/tools/wgpu/host.py b/openpilot/tools/wgpu/host.py index 213684a539..dbbbe63399 100644 --- a/openpilot/tools/wgpu/host.py +++ b/openpilot/tools/wgpu/host.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 import argparse +import os +import signal import subprocess import sys import time @@ -11,11 +13,15 @@ CAMERASTREAM = ROOT / "openpilot/tools/camerastream/compressed_vipc.py" def stop_process(proc: subprocess.Popen) -> None: - proc.terminate() + try: + os.killpg(proc.pid, signal.SIGTERM) + except ProcessLookupError: + proc.wait() + return try: proc.wait(timeout=5) except subprocess.TimeoutExpired: - proc.kill() + os.killpg(proc.pid, signal.SIGKILL) proc.wait() @@ -25,11 +31,11 @@ def main() -> None: parser.add_argument("--big-model", action="store_true", help="use the locally compiled big driving model") args = parser.parse_args() - camera = subprocess.Popen([sys.executable, str(CAMERASTREAM), args.device, "--cams", "0,2"]) + camera = subprocess.Popen([sys.executable, str(CAMERASTREAM), args.device, "--cams", "0,2"], start_new_session=True) model_args = [sys.executable, "-m", "openpilot.selfdrive.modeld.modeld", "--remote", args.device] if args.big_model: model_args.append("--big-model") - model = subprocess.Popen(model_args, cwd=ROOT) + model = subprocess.Popen(model_args, cwd=ROOT, start_new_session=True) procs = [camera, model] try: @@ -41,6 +47,7 @@ def main() -> None: for proc in procs: if proc.poll() is None: stop_process(proc) + print("wgpu host stopped") if __name__ == "__main__":