use subprocess API so we can kill exactly the processes we want.  also, properly convey error from dill to gradle, the exit code returned by os.system is not the same as passed to sys.exit, it is shifted by 8.