Don't throw an error when exiting subshells

check_call raises an error if the command throws an error, rather
than returning the error code. using sys.exit and call instead
allow subshells that have a non-zero exit code to exit cleanly
and propogate the error code without extra output.