#!/bin/bash ENABLED=yes [ "$ENABLED" != "yes" ] && exit 0 DEBUGMODE=no unset ROOTFS; [[ -d /usr/lib/ublinux ]] || ROOTFS=. SOURCE=${ROOTFS}/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 SOURCE=${ROOTFS}/usr/lib/ublinux/os-config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 debug_mode "$0" "$@" SYSCONF="${ROOTFS}/${SYSCONF}" SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/security; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null exec_cgroup_quota(){ ## Квоты на ресурсы, через cgroup2. Механизм systemd или напрямую cgroup if [[ -n ${CGROUP_QUOTA[@]} ]]; then for ITEM_UNIT in "${!CGROUP_QUOTA[@]}"; do if [[ ! ${ITEM_UNIT} =~ ".service"$|".slice"$|".scope"$ ]]; then USER_ID=$(id -u ${ITEM_UNIT}) [[ -n ${ITEM_UNIT} ]] && USER_SLICE="user-$(id -u ${USER_ID}).slice" || return 1 COMPAT_UNIT=${USER_SLICE} else COMPAT_UNIT=${ITEM_UNIT} fi if readlink -fq ${ROOTFS}/usr/bin/init | grep -q "lib/systemd/systemd$"; then systemctl set-property --runtime ${COMPAT_UNIT} ${CGROUP_QUOTA[${ITEM_UNIT}]//,/ } systemctl daemon-reload else true fi done fi } ################ ##### MAIN ##### ################ exec_cgroup_quota $@