3 # cgconfig Control Groups Configuration Startup
4 # chkconfig: 2345 01 99
5 # description: This script runs the cgconfigparser utility to parse and setup \
6 # the control group filesystem. It uses /etc/cgconfig.conf \
7 # and parses the configuration specified in there.
9 # Source function library
10 . /etc/rc.d/init.d/functions
14 [ -f /etc/sysconfig/cgconfig ] && . /etc/sysconfig/cgconfig
16 create_default_groups() {
17 local defaultcgroup controllers
18 if [ -f /etc/cgrules.conf ]; then
19 defaultcgroup=$(awk '/^\*[\t ]+/ { print $3; exit }' /etc/cgrules.conf)
20 if [ -n "$defaultcgroup" -a "$defaultcgroup" = "*" ]; then
21 # nls "/etc/cgrules.conf incorrect. Overriding it"
26 if [ -z $defaultcgroup ]; then
27 defaultcgroup=sysdefault/
31 # Find all mounted subsystems and create comma-separated list
34 controllers=$(lssubsys 2>/dev/null | awk '{ if (v) v=v","$0 ; else v=$0 } END { printf "%s", v }')
37 # Create the default group, ignore errors when the default group
40 cgcreate -f 664 -d 775 -g $controllers:$defaultcgroup 2>/dev/null
43 # special rule for cpusets
45 if echo $controllers | grep -q -w cpuset; then
47 cpus=$(cgget -nv -r cpuset.cpus /)
48 cgset -r cpuset.cpus=$cpus $defaultcgroup
49 mems=$(cgget -nv -r cpuset.mems /)
50 cgset -r cpuset.mems=$mems $defaultcgroup
54 # Classify everything to default cgroup. Ignore errors, some processes
55 # may exit after ps is run and before cgclassify moves them.
57 cgclassify -g $controllers:$defaultcgroup $(ps --no-headers -eL o tid) 2>/dev/null || :
61 # Check if the service is already running?
62 if [ -f /var/lock/subsys/cgconfig ]; then
63 msg_already_running "cgconfig"
66 if [ ! -s /etc/cgconfig.conf ]; then
67 nls "/etc/cgconfig.conf is not configured"
71 msg_starting "cgconfig"; busy
73 out=$(/sbin/cgconfigparser -l /etc/cgconfig.conf 2>&1)
75 if [ $RETVAL -ne 0 ]; then
77 [ "$out" ] && echo >&2 "$out"
81 if is_yes "$CREATE_DEFAULT"; then
85 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/cgconfig
90 if [ ! -f /var/lock/subsys/cgconfig ]; then
91 msg_not_running "cgconfig"
95 msg_stopping "cgconfig"
98 rm -f /var/lock/subsys/cgconfig
103 if [ ! -f /var/lock/subsys/cgconfig ]; then
104 msg_not_running "cgconfig"
132 if [ -f /var/lock/subsys/cgconfig ] ; then
141 msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"