From 8ae90253233b93a1f3168136e2888c083fee43ec Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Thu, 6 Jun 2024 03:50:02 -0700 Subject: [PATCH] pandad.cc should receive same SIGTERM and exit old-commit-hash: afc5ef6b916c54ac2ec471d144f601ead71250cb --- selfdrive/pandad/pandad.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/selfdrive/pandad/pandad.py b/selfdrive/pandad/pandad.py index aebd00cc18..a202ca85cb 100755 --- a/selfdrive/pandad/pandad.py +++ b/selfdrive/pandad/pandad.py @@ -5,7 +5,6 @@ import usb1 import time import signal import subprocess -import sys from typing import NoReturn from panda import Panda, PandaDFU, PandaProtocolMismatch, FW_PATH @@ -65,17 +64,12 @@ def flash_panda(panda_serial: str) -> Panda: def main() -> NoReturn: # override manager's immediate SystemExit to allow pandad to exit gracefully - do_exit = False - def signal_handler(signum, frame): - nonlocal do_exit, process + nonlocal do_exit do_exit = True cloudlog.warning(f"caught signal {signum}, exiting") - if process is not None: - process.terminate() - - sys.exit(0) + do_exit = False signal.signal(signal.SIGTERM, signal_handler) count = 0 @@ -176,8 +170,7 @@ def main() -> NoReturn: # run pandad with all connected serials as arguments os.environ['MANAGER_DAEMON'] = 'pandad' os.chdir(os.path.join(BASEDIR, "selfdrive/pandad")) - process = subprocess.Popen(["./pandad", *panda_serials]) - process.wait() + subprocess.run(["./pandad", *panda_serials], check=True) if __name__ == "__main__": main()