'Halt the process and watcher threads.
:param block: Block until the process has stopped.
:param kill_signal: Number of signal that will be sent to the process
when terminating the process
:raises utils.WaitTimeout if blocking is True and the process
did not stop in time.'

def stop(self, block=False, kill_signal=signal.SIGKILL):

    if self._is_running:
        LOG.debug('Halting    async    process    [%s].', self.cmd)
        self._kill(kill_signal)
    else:
        raise AsyncProcessException(_('Process    is    not    running.'))
    if block:
        common_utils.wait_until_true((lambda : (not self.is_active())))
