diff --git a/setup.py b/setup.py index 383a2e2727..2ee10c8971 100644 --- a/setup.py +++ b/setup.py @@ -52,6 +52,7 @@ def read_version(): "urllib3>=1.21.1,!=1.25,!=1.25.1", "docker-compose>=1.25.2", "PyYAML>=5.3, <6", # PyYAML version has to match docker-compose requirements + "psutil", ], "scipy": ["scipy>=0.19.0"], } diff --git a/src/sagemaker/local/image.py b/src/sagemaker/local/image.py index c96906eefa..573acafeb1 100644 --- a/src/sagemaker/local/image.py +++ b/src/sagemaker/local/image.py @@ -31,7 +31,10 @@ import tempfile from distutils.spawn import find_executable +from signal import SIGTERM from threading import Thread + +import psutil from six.moves.urllib.parse import urlparse import sagemaker @@ -840,6 +843,8 @@ def run(self): def down(self): """Placeholder docstring""" + for process in psutil.Process(self.process.pid).children(): + process.send_signal(SIGTERM) self.process.terminate()