From 0510c473d4cd9097401e3a7bc236b0121977b81d Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Fri, 18 Nov 2011 15:54:18 -0600 Subject: CGroups: /sys/fs/cgroups should be a tmpfs The kernel documentation states that a cgroup file system should not be mounted here, but a tmpfs. This also means that we should not create a group for each process, but we should allow the user to specify which group a process should be assigned to. The rc_cgroup variable will be used for this purpose. For more information, see /usr/src/linux/Documentation/cgroups/cgroups.txt. --- sh/runscript.sh.in | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) (limited to 'sh') diff --git a/sh/runscript.sh.in b/sh/runscript.sh.in index c7d712be..706a1f7d 100644 --- a/sh/runscript.sh.in +++ b/sh/runscript.sh.in @@ -190,18 +190,13 @@ fi sourcex -e "@SYSCONFDIR@/rc.conf" # Attach to CGroup - dir existing is enough for us -if [ -d /sys/fs/cgroup/ ]; then - # use RC_SVCNAME unless overridden in conf.d - SVC_CGROUP=${rc_cgroup:-$RC_SVCNAME} - mkdir -p /sys/fs/cgroup/${SVC_CGROUP} - for f in cpuset.cpus cpuset.mems; do - if [ -f /sys/fs/cgroup/${f} ]; then - cp /sys/fs/cgroup/${f} /sys/fs/cgroup/${SVC_CGROUP} - fi - done - # now attach self to cgroup - any children of this process will inherit this - echo $$ > /sys/fs/cgroup/${SVC_CGROUP}/tasks - # TODO: set res limits from conf.d +if [ -d /sys/fs/cgroup -a -n "${rc_cgroup}" ]; then + if [ -d /sys/fs/cgroup/${rc_cgroup} ]; then + # attach self to cgroup - any children of this process will inherit this + echo $$ > /sys/fs/cgroup/${rc_cgroup}/tasks + else + eerror "Control group /sys/fs/cgroup/${rc_cgroup} does not exist." + fi fi # Apply any ulimit defined @@ -307,14 +302,4 @@ while [ -n "$1" ]; do exit 1 done -# CGroup cleanup -if [ -d /sys/fs/cgroup/ ]; then - # use RC_SVCNAME unless overridden in conf.d - SVC_CGROUP=${rc_cgroup:-$RC_SVCNAME} - # reattach to root cgroup - echo $$ > /sys/fs/cgroup/tasks - # remove cgroup if empty, will fail if any task attached - rmdir /sys/fs/cgroup/${SVC_CGROUP} 2>/dev/null -fi - exit 0 -- cgit v1.2.3