#!/sbin/openrc-run # Copyright 1999-2023 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 CGCONFIGPARSER="/usr/sbin/cgconfigparser" CGCLASSIFY="/usr/bin/cgclassify" : "${CG_CONFIGFILE:=/etc/cgroup/cgconfig.conf}" : "${CG_CONFIGDIR:=/etc/cgroup/cgconfig.d}" description="Control Group Configuration Service" start() { ebegin "Setting up CGroups" "${CGCONFIGPARSER}" "--load=${CG_CONFIGFILE}" "--load-directory=${CG_CONFIGDIR}" >/dev/null 2>&1 eend "$?" } start_post() { # Classify PID according to the rules if requested yesno "${CG_CLASSIFY}" || return 0 ebegin "Classifying PID to CGroups" local pid for pid in $(pgrep ''); do ${CGCLASSIFY} ${pid} || einfo "Classifying ${pid} failed" done eend "$?" } stop() { cgconfig_umount } cgconfig_umount() { local ctrl eq mnt_pnt mnt_pts while read ctrl eq mnt_pnt; do case "${ctrl}" in (\#*) continue ;; (mount*) mnt_pts=true;; (\}*) mnt_pts= ;; (*) [ -n "${mnt_pts}" ] || continue mnt_pnt="${mnt_pnt%;}" ebegin "Unmounting ${mnt_pnt}" umount "${mnt_pnt}" eend "$?" ;; esac done < "${CG_CONFIGFILE}" }