- return subprocess.Popen(args,
- stdin=subprocess.DEVNULL)
+ subproc = subprocess.Popen(args, stdin=subprocess.DEVNULL)
+ def kill_subproc() -> None:
+ try:
+ if subproc.poll() is None:
+ logger.info("At exit handler: killing {}: {}".format(subproc, command))
+ subproc.terminate()
+ subproc.wait(timeout=10.0)
+ except BaseException as be:
+ log.error(be)
+ atexit.register(kill_subproc)
+ return subproc