def _execute_sbatch(self):
        """Schedule the sbatch file using the sbatch command
        :returns the slurm job id
        """
        commands = self.campaign.process.get('commands', {})
        sbatch = find_executable(commands.get('sbatch', 'sbatch'))
        sbatch_command = [sbatch, '--parsable', self.sbatch_filename]
        try:
            self.logger.debug(
                'Executing command: %s',
                ' '.join(map(six.moves.shlex_quote, sbatch_command)),
            )
            sbatch_out = subprocess.check_output(
                sbatch_command, universal_newlines=True
            )
        except subprocess.CalledProcessError as cpe:
            self.logger.error(
                "SBATCH return non-zero exit" "status %d for tag %s",
                cpe.returncode,
                self.tag,
            )
            sbatch_out = cpe.output
        jobidre = re.compile(r'^([\d]+)(?:;\S*)?$')
        jobid = None
        for line in sbatch_out.splitlines():
            res = jobidre.match(line)
            if res is not None:
                jobid = res.group(1)
                self.logger.info("Submitted SBATCH job %s for tag %s", jobid, self.tag)
            elif line:
                self.logger.warning("SBATCH: %s", line)
        if jobid is None:
            self.logger.error("SBATCH submission failed for tag %s", self.tag)
            return -1
        else:
            return int(jobid)