summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sh/cgroup-release-agent.sh.in4
-rw-r--r--sh/rc-cgroup.sh.in12
-rw-r--r--sh/runscript.sh.in4
3 files changed, 13 insertions, 7 deletions
diff --git a/sh/cgroup-release-agent.sh.in b/sh/cgroup-release-agent.sh.in
index c3174fe..d6dd1e1 100644
--- a/sh/cgroup-release-agent.sh.in
+++ b/sh/cgroup-release-agent.sh.in
@@ -5,6 +5,6 @@
cgroup=/sys/fs/cgroup/openrc
PATH=/bin:/usr/bin:/sbin:/usr/sbin
-if [ -d ${cgroup}/$1 ]; then
- rmdir ${cgroup}/$1
+if [ -d ${cgroup}/"$1" ]; then
+ rmdir ${cgroup}/"$1"
fi
diff --git a/sh/rc-cgroup.sh.in b/sh/rc-cgroup.sh.in
index 81fc7d8..afcbb03 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"
@@ -115,7 +117,7 @@ cgroup_cleanup()
cgroup_get_pids || { eend 0 "finished" ; return 0 ; }
sleep 1
done
- done
+ done 2>/dev/null
done
cgroup_get_pids || { eend 0 "finished" ; return 0; }
kill -9 $pids
diff --git a/sh/runscript.sh.in b/sh/runscript.sh.in
index 58e8eac..a1ed9c6 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