Mini Shell

Direktori : /opt/cloudlinux/venv/lib64/python3.11/site-packages/cllimits/lib/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/cllimits/lib/__init__.py

# -*- coding: utf-8 -*-

# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT

import subprocess


def exec_utility(util_path, params, stderr=False):
    """
    Executes supplied utility with supplied parameters
    :param util_path: string with path to callable utility
    :param params: utility parameters
    :param stderr: trigger to return stderr or not
    :return: Cortege (ret_code, cagefsctl_stdout) if stderr is False
             Cortege (ret_code, cagefsctl_stdout, cagefsctl_stderr) otherwise
    """
    args = []
    args.append(util_path)
    args.extend(params)
    with subprocess.Popen(
        args,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        text=True,
    ) as proc:
        out, err = proc.communicate()
        retcode = proc.returncode
    if stderr:
        return retcode, out.strip(), err.strip()
    return retcode, out.strip()

Zerion Mini Shell 1.0