Executes the given executable whilst holding the given lock.
        :param key:
        :param executable:
        :param capture_stdout:
        :param capture_stderr:
        :param acquire_kwargs:
        :return:

def execute(self, key: str, executable: str, *, capture_stdout: bool=False, capture_stderr: bool=False,
                **acquire_kwargs) -> Tuple[Optional[int], Optional[bytes], Optional[bytes]]:
        """
        Executes the given executable whilst holding the given lock.
        :param key:
        :param executable:
        :param capture_stdout:
        :param capture_stderr:
        :param acquire_kwargs:
        :return:
        """
        lock = self.acquire(key, **acquire_kwargs)
        if lock is None:
            return None, None, None
        return self.execute_with_lock(executable, lock, capture_stdout=capture_stdout, capture_stderr=capture_stderr)