diff options
Diffstat (limited to 'sh/rc-cgroup.sh.in')
-rw-r--r-- | sh/rc-cgroup.sh.in | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sh/rc-cgroup.sh.in b/sh/rc-cgroup.sh.in index afcbb031..b3bab0f9 100644 --- a/sh/rc-cgroup.sh.in +++ b/sh/rc-cgroup.sh.in @@ -72,8 +72,17 @@ cgroup_set_values() cgroup_add_service() { - if [ -d "$1" ]; then - cgroup="$1/$RC_SVCNAME" + # relocate starting process to the top of the cgroup + # it prevents from unwanted inheriting of the user + # cgroups. But may lead to a problems where that inheriting + # is needed. + for d in /sys/fs/cgroup/* ; do + echo $$ > "${d}"/tasks + done + + openrc_cgroup=/sys/fs/cgroup/openrc + if [ -d "$openrc_cgroup" ]; then + cgroup="$openrc_cgroup/$RC_SVCNAME" mkdir -p "$cgroup" [ -f "$cgroup/tasks" ] && echo 0 > "$cgroup/tasks" fi |