def run_command(<EOL>command,<EOL>input_data=None,<EOL>out_pipe=subprocess.PIPE,<EOL>err_pipe=subprocess.PIPE,<EOL>env=None,<EOL>**kwargs<EOL>):
if env is None:<EOL><INDENT>env = os.environ.copy()<EOL><DEDENT>with LogTask(<EOL>'<STR_LIT>' % '<STR_LIT:U+0020>'.join('<STR_LIT>' % arg for arg in command),<EOL>logger=LOGGER,<EOL>level='<STR_LIT>',<EOL>) as task:<EOL><INDENT>command_result = _run_command(<EOL>command=command,<EOL>input_data=input_data,<EOL>out_pipe=out_pipe,<EOL>err_pipe=err_pipe,<EOL>env=env,<EOL>uuid=task.uuid,<EOL>**kwargs<EOL>)<EOL>return command_result<EOL><DEDENT>
Runs a command non-interactively

Args:
    command(list of str): args of the command to execute, including the
        command itself as command[0] as `['ls', '-l']`
    input_data(str): If passed, will feed that data to the subprocess
        through stdin
    out_pipe(int or file): File descriptor as passed to
        :ref:subprocess.Popen to use as stdout
    err_pipe(int or file): File descriptor as passed to
        :ref:subprocess.Popen to use as stderr
    env(dict of str:str): If set, will use the given dict as env for the
        subprocess
    **kwargs: Any other keyword args passed will be passed to the
        :ref:subprocess.Popen call

Returns:
    lago.utils.CommandStatus: result of the interactive execution