def METHOD_NAME(self):
    kwargs = {
        'timeout': self.timeout,
        'blocking': True,
    }
    kwargs.update(run_as_popen_kwargs(None, cwd=self.cwd, user=self.user, group=self.group, limits=self.limits, umask=self.umask))
    if self.configs_environment or self.secrets_environment:
        if "env" not in kwargs:
            kwargs["env"] = {}
        kwargs["env"].update(self.kind_environment_env("cfg", self.configs_environment))
        kwargs["env"].update(self.kind_environment_env("sec", self.secrets_environment))
    if self.environment:
        if "env" not in kwargs:
            kwargs["env"] = {}
        for mapping in self.environment:
            try:
                var, val = mapping.split("=", 1)
            except Exception as exc:
                self.log.info("ignored environment mapping %s: %s", mapping, exc)
                continue
            var = var.upper()
            kwargs["env"][var] = val
    try:
        self.action_triggers("", "command", **kwargs)
        self.write_last_run_retcode(0)
    except ex.Error:
        self.write_last_run_retcode(1)
        if self.on_error:
            kwargs["blocking"] = False
            self.action_triggers("", "on_error", **kwargs)
        raise