Merge pull request #167 from valschneider/kill-children
host: Add kill_children utility method
diff --git a/devlib/host.py b/devlib/host.py
index 8c8a069..8062d24 100644
--- a/devlib/host.py
+++ b/devlib/host.py
@@ -14,6 +14,7 @@
#
from glob import iglob
import os
+import signal
import shutil
import subprocess
import logging
@@ -24,6 +25,11 @@
PACKAGE_BIN_DIRECTORY = os.path.join(os.path.dirname(__file__), 'bin')
+def kill_children(pid, signal=signal.SIGKILL):
+ with open('/proc/{0}/task/{0}/children'.format(pid), 'r') as fd:
+ for cpid in map(int, fd.read().strip().split()):
+ kill_children(cpid, signal)
+ os.kill(cpid, signal)
class LocalConnection(object):