updated on Thu Jan 26 16:09:46 UTC 2012
[aur-mirror.git] / libcgroup-git / cgconfig
blobde875fab0215a2627974c3fe1f28eb5633d9447b
1 #!/bin/bash
3 . /etc/rc.conf
4 . /etc/rc.d/functions
6 . /etc/conf.d/cgconfig
8 # From cgconfig init.d script
9 create_default_groups() {
10 declare defaultcgroup
12 if [ -f /etc/cgrules.conf ]
13 then
14 read user ctrl defaultcgroup <<< \
15 $(grep -m1 ^\* /etc/cgrules.conf)
16 if [[ -n $defaultcgroup && $defaultcgroup = "*" ]]
17 then
18 defaultcgroup=
22 if [ -z $defaultcgroup ]
23 then
24 defaultcgroup=sysdefault/
28 # Find all mounted subsystems and create comma-separated list
29 # of controllers.
31 controllers=$(lssubsys 2>/dev/null | tr '\n' ',' | sed s/.$//)
34 # Create the default group, ignore errors when the default group
35 # already exists.
37 cgcreate -g $controllers:$defaultcgroup 2>/dev/null
40 # special rule for cpusets
42 if echo $controllers | grep -q -w cpuset; then
43 cpus=$(cgget -nv -r cpuset.cpus /)
44 cgset -r cpuset.cpus=$cpus $defaultcgroup
45 mems=$(cgget -nv -r cpuset.mems /)
46 cgset -r cpuset.mems=$mems $defaultcgroup
50 # special rule for cpus
52 if echo $controllers | grep -q -w cpu; then
53 rt_runtime_us=$(cgget -nv -r cpu.rt_runtime_us /)
54 cgset -r cpu.rt_runtime_us=$rt_runtime_us $defaultcgroup
58 # Classify everything to default cgroup. Ignore errors, some processes
59 # may exit after ps is run and before cgclassify moves them.
61 cgclassify -g $controllers:$defaultcgroup $(ps --no-headers -eL o tid) \
62 2>/dev/null || :
65 case "$1" in
66 start)
67 stat_busy "Starting CGroups configuration"
68 /usr/sbin/cgconfigparser -l /etc/cgconfig.conf
69 if [ $? -gt 0 ]; then
70 stat_fail
71 else
72 if [ $CREATE_DEFAULT == "yes" ]; then
73 create_default_groups
75 add_daemon cgconfig
76 stat_done
79 stop)
80 stat_busy "Clearing CGroups configuration"
81 cgclear
82 if [ $? -gt 0 ]; then
83 stat_fail
84 else
85 rm_daemon cgconfig
86 stat_done
89 restart)
90 $0 stop
91 sleep 1
92 $0 start
95 echo "usage: $0 {start|stop|restart}"
96 esac
98 # vim:set ft=sh: