From 7de136121ba76fdd2502b4c0b366eced31d49eba Mon Sep 17 00:00:00 2001 From: Arash Negahdar Date: Mon, 9 Mar 2020 16:09:28 -0400 Subject: [PATCH] Tools: Exit cleanly based on the environment As suggested by Peter Barker --- Tools/autotest/sim_vehicle.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Tools/autotest/sim_vehicle.py b/Tools/autotest/sim_vehicle.py index f049fcfb66..d3a247fd51 100755 --- a/Tools/autotest/sim_vehicle.py +++ b/Tools/autotest/sim_vehicle.py @@ -21,6 +21,7 @@ import tempfile import textwrap import time import shlex +import binascii from pymavlink import mavextra from pysim import vehicleinfo @@ -31,6 +32,8 @@ windowID = [] autotest_dir = os.path.dirname(os.path.realpath(__file__)) root_dir = os.path.realpath(os.path.join(autotest_dir, '../..')) +os.environ["SIM_VEHICLE_SESSION"] = binascii.hexlify(os.urandom(8)).decode() + class CompatError(Exception): """A custom exception class to hold state if we encounter the parse error we are looking for""" @@ -198,11 +201,12 @@ def kill_tasks_psutil(victims): use this routine""" import psutil for proc in psutil.process_iter(): - pdict = proc.as_dict(attrs=['name', 'status']) + pdict = proc.as_dict(attrs=['environ', 'status']) if pdict['status'] == psutil.STATUS_ZOMBIE: continue - if pdict['name'] in victims: - proc.kill() + if pdict['environ'] is not None: + if pdict['environ'].get('SIM_VEHICLE_SESSION') == os.environ['SIM_VEHICLE_SESSION']: + proc.kill() def kill_tasks_pkill(victims):