diff --git a/sh/rc-cgroup.sh.in b/sh/rc-cgroup.sh.in index d96aa164..afcbb031 100644 --- a/sh/rc-cgroup.sh.in +++ b/sh/rc-cgroup.sh.in @@ -70,15 +70,17 @@ cgroup_set_values() return 0 } -cgroup_set_limits() +cgroup_add_service() { - openrc_cgroup=/sys/fs/cgroup/openrc - if [ -d "$openrc_cgroup" ]; then - cgroup="$openrc_cgroup/$RC_SVCNAME" + if [ -d "$1" ]; then + cgroup="$1/$RC_SVCNAME" mkdir -p "$cgroup" [ -f "$cgroup/tasks" ] && echo 0 > "$cgroup/tasks" fi +} +cgroup_set_limits() +{ local blkio="${rc_cgroup_blkio:-$RC_CGROUP_BLKIO}" [ -n "$blkio" ] && cgroup_set_values blkio "$blkio" diff --git a/sh/runscript.sh.in b/sh/runscript.sh.in index 58e8eacf..a1ed9c68 100644 --- a/sh/runscript.sh.in +++ b/sh/runscript.sh.in @@ -209,6 +209,10 @@ sourcex -e "@SYSCONFDIR@/rc.conf" [ -n "${rc_ulimit:-$RC_ULIMIT}" ] && ulimit ${rc_ulimit:-$RC_ULIMIT} # Apply cgroups settings if defined +if [ "$(command -v cgroup_add_service)" = "cgroup_add_service" ]; then + cgroup_add_service /sys/fs/cgroup/openrc + cgroup_add_service /sys/fs/cgroup/systemd/system +fi [ "$(command -v cgroup_set_limits)" = "cgroup_set_limits" ] && \ cgroup_set_limits