packages: libcgroup/cgconfig.init (NEW), libcgroup/cgred.init (NEW) - start...
baggins
baggins at pld-linux.org
Tue Feb 8 00:34:37 CET 2011
Author: baggins Date: Mon Feb 7 23:34:37 2011 GMT
Module: packages Tag: HEAD
---- Log message:
- started work on PLD init scripts
---- Files affected:
packages/libcgroup:
cgconfig.init (NONE -> 1.1) (NEW), cgred.init (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/libcgroup/cgconfig.init
diff -u /dev/null packages/libcgroup/cgconfig.init:1.1
--- /dev/null Tue Feb 8 00:34:37 2011
+++ packages/libcgroup/cgconfig.init Tue Feb 8 00:34:31 2011
@@ -0,0 +1,139 @@
+#!/bin/sh
+#
+# cgconfig Control Groups Configuration Startup
+# chkconfig: - 5 95
+# description: This script runs the cgconfigparser utility to parse and setup \
+# the control group filesystem. It uses /etc/cgconfig.conf \
+# and parses the configuration specified in there.
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# read the config
+CREATE_DEFAULT=yes
+[ -f /etc/sysconfig/cgconfig ] && . /etc/sysconfig/cgconfig
+
+create_default_groups() {
+ local defaultcgroup
+
+ if [ -f /etc/cgrules.conf ]; then
+ defaultcgroup=$(awk '/^\*[\t ]+/ { print $3; exit }' /etc/cgrules.conf)
+ if [ -n "$defaultcgroup" -a "$defaultcgroup" = "*" ]; then
+ log_warning_msg "/etc/cgrules.conf incorrect"
+ log_warning_msg "Overriding it"
+ defaultcgroup=
+ fi
+ fi
+
+ if [ -z $defaultcgroup ]; then
+ defaultcgroup=sysdefault/
+ fi
+
+ #
+ # Find all mounted subsystems and create comma-separated list
+ # of controllers.
+ #
+ controllers=`lssubsys 2>/dev/null | tr '\n' ',' | sed s/.$//`
+
+ #
+ # Create the default group, ignore errors when the default group
+ # already exists.
+ #
+ cgcreate -f 664 -d 775 -g $controllers:$defaultcgroup 2>/dev/null
+
+ #
+ # special rule for cpusets
+ #
+ if echo $controllers | grep -q -w cpuset; then
+ cpus=`cgget -nv -r cpuset.cpus /`
+ cgset -r cpuset.cpus=$cpus $defaultcgroup
+ mems=`cgget -nv -r cpuset.mems /`
+ cgset -r cpuset.mems=$mems $defaultcgroup
+ fi
+
+ #
+ # Classify everything to default cgroup. Ignore errors, some processes
+ # may exit after ps is run and before cgclassify moves them.
+ #
+ cgclassify -g $controllers:$defaultcgroup `ps --no-headers -eL o tid` 2>/dev/null || :
+}
+
+start() {
+ # Check if the service is already running?
+ if [ -f /var/lock/subsys/cgconfig ]; then
+ msg_already_running "cgconfig"
+ return
+ fi
+
+ msg_starting "cgconfig"
+ if [ ! -s /etc/cgconfig.conf ]; then
+ log_failure_msg "/etc/cgconfig.conf is not configured"
+ return 6
+ fi
+
+ /sbin/cgconfigparser -l /etc/cgconfig.conf
+ retval=$?
+ if [ $retval -ne 0 ]; then
+ log_failure_msg "Failed to parse /etc/cgconfig.conf"
+ return 1
+ fi
+
+ if [ $CREATE_DEFAULT = "yes" ]; then
+ create_default_groups
+ fi
+
+ touch /var/lock/subsys/cgconfig
+ retval=$?
+ if [ $retval -ne 0 ]; then
+ log_failure_msg "Failed to touch /var/lock/subsys/cgconfig"
+ return 1
+ fi
+ ok
+}
+
+stop() {
+ if [ -f /var/lock/subsys/cgconfig ]; then
+ msg_stopping "cgconfig"
+ cgclear
+ rm -f /var/lock/subsys/cgconfig
+ ok
+ else
+ msg_not_running "cgconfig"
+ fi
+}
+
+RETVAL=0
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop;
+ ;;
+ restart|reload)
+ stop
+ start
+ ;;
+ condrestart)
+ if [ -f /var/lock/subsys/cgconfig ] ; then
+ stop
+ start
+ fi
+ ;;
+ status)
+ if [ -f /var/lock/subsys/cgconfig ] ; then
+ echo "Running"
+ exit 0
+ else
+ echo "Stopped"
+ exit 3
+ fi
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|condrestart|status}"
+ exit 3
+ ;;
+esac
+
+exit $RETVAL
================================================================
Index: packages/libcgroup/cgred.init
diff -u /dev/null packages/libcgroup/cgred.init:1.1
--- /dev/null Tue Feb 8 00:34:37 2011
+++ packages/libcgroup/cgred.init Tue Feb 8 00:34:32 2011
@@ -0,0 +1,110 @@
+#!/bin/sh
+#
+# cgred CGroups Rules Engine Daemon
+# chkconfig: - 14 86
+# description: This is a daemon for automatically classifying processes \
+# into cgroups based on UID/GID.
+#
+# processname: cgrulesengd
+# pidfile: /var/run/cgred.pid
+#
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+start() {
+ if [ -f "/var/lock/subsys/cgred" ] ; then
+ msg_already_running "CGroup Rules Engine Daemon"
+ return
+ fi
+
+ msg_staring "CGroup Rules Engine Daemon"
+ if [ ! -s /etc/cgrules.conf ]; then
+ log_failure_msg "not configured"
+ return 6
+ fi
+ if ! grep -qs "^cgroup" /proc/mounts ; then
+ log_failure_msg "Cannot find cgroups, is cgconfig service running?"
+ return 1
+ fi
+ # Read in configuration options.
+ OPTIONS=""
+ if [ -f "/etc/sysconfig/cgred.conf" ] ; then
+ . /etc/sysconfig/cgred.conf
+
+ OPTIONS="$NODAEMON $LOG"
+ [ -n "$LOG_FILE" ] && OPTIONS="$OPTIONS --logfile=$LOG_FILE"
+ [ -n "$SOCKET_USER" ] && OPTIONS="$OPTIONS -u $SOCKET_USER"
+ [ -n "$SOCKET_GROUP" ] && OPTIONS="$OPTIONS -g $SOCKET_GROUP"
+ fi
+
+ daemon --check cgred --pidfile /var/run/cgred.pid /sbin/cgrulesengd $OPTIONS
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ return 7
+ fi
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/cgred
+ echo "`pidof cgrulesengd`" > /var/run/cgred.pid
+}
+
+stop() {
+ if [ -f /var/lock/subsys/cgred ]; then
+ msg_stopping "CGroup Rules Engine Daemon"
+ killproc -p /var/run/cgred.pid cgrulesengd -TERM
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ] ; then
+ rm -f /var/lock/subsys/cgred
+ rm -f /var/run/cgred.pid
+ fi
+ else
+ msg_not_running "CGroup Rules Engine Daemon"
+ fi
+}
+
+RETVAL=0
+# See how we are called
+case "$1" in
+ start)
+ start
+ RETVAL=$?
+ ;;
+ stop)
+ stop
+ RETVAL=$?
+ ;;
+ status)
+ status -p /var/run/cgred.pid cgred
+ RETVAL=$?
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ condrestart)
+ if [ -f /var/lock/subsys/cgred ] ; then
+ stop
+ start
+ fi
+ ;;
+ reload|flash)
+ if [ -f /var/lock/subsys/cgred ] ; then
+ show "Reloading rules configuration..."
+ # SIGUSR2
+ kill -s 12 `cat ${pidfile}`
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ] ; then
+ fail
+ else
+ ok
+ fi
+ else
+ msg_not_running "cgred"
+ fi
+ ;;
+ *)
+ msg_usage "$0 {start|stop|status|restart|condrestart|reload}"
+ exit 3
+ ;;
+esac
+
+exit $RETVAL
================================================================
More information about the pld-cvs-commit
mailing list