pandad.cc should receive same SIGTERM and exit

old-commit-hash: afc5ef6b916c54ac2ec471d144f601ead71250cb
pull/32103/head
Shane Smiskol 1 year ago
parent 6927015b45
commit 8ae9025323
  1. 13
      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()

Loading…
Cancel
Save