diff options
Diffstat (limited to 'sh/runscript.sh.in')
-rw-r--r-- | sh/runscript.sh.in | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/sh/runscript.sh.in b/sh/runscript.sh.in index 706a1f7d..4032cb84 100644 --- a/sh/runscript.sh.in +++ b/sh/runscript.sh.in @@ -148,6 +148,19 @@ start() service_inactive && _inactive=true mark_service_inactive fi + if [ "$RC_UNAME" = Linux ]; then + local cgroup=/sys/fs/cgroup/openrc + local svc_cgroup=${cgroup}/${RC_SVCNAME} + if mountinfo -q ${cgroup}; then + mkdir ${svc_cgroup} + for f in cpuset.cpus cpuset.mems; do + if [ -f ${cgroup}/${f} ]; then + cp ${cgroup}/${f} ${svc_cgroup} + fi + done + echo $$ > ${svc_cgroup}/tasks + fi + fi eval start-stop-daemon --start \ --exec $command \ ${procname:+--name} $procname \ @@ -189,16 +202,6 @@ fi # Load any system overrides sourcex -e "@SYSCONFDIR@/rc.conf" -# Attach to CGroup - dir existing is enough for us -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 [ -n "${rc_ulimit:-$RC_ULIMIT}" ] && ulimit ${rc_ulimit:-$RC_ULIMIT} |