changed shell to pipe to tempfile instead of subprocess.PIPE, so that commands that produce a lot of output are ok (e.g., rsyncing AppServer)