[libcgroup] Fix initscripts to report stopped cgconfig service as not running Resolves: #619091

Jan Šafránek jsafrane at fedoraproject.org
Mon Aug 2 14:38:29 UTC 2010


commit e1783ee4c2928c18fc5e04ea8aabb95e02174244
Author: Jan Safranek <jsafrane at redhat.com>
Date:   Mon Aug 2 16:38:25 2010 +0200

    Fix initscripts to report stopped cgconfig service as not running
    Resolves: #619091

 libcgroup-0.36.2-initscripts.patch |  123 ++++++++++++++++++++++++++++++++++++
 1 files changed, 123 insertions(+), 0 deletions(-)
---
diff --git a/libcgroup-0.36.2-initscripts.patch b/libcgroup-0.36.2-initscripts.patch
new file mode 100644
index 0000000..99ef8ac
--- /dev/null
+++ b/libcgroup-0.36.2-initscripts.patch
@@ -0,0 +1,123 @@
+Bug 619091 - cgconfig service is always reported as "running"
+
+commit 023fee998f07499938830a044845eb03b816eea7
+Author: Ivana Hutarova Varekova <varekova at redhat.com>
+Date:   Wed Jul 14 14:30:48 2010 +0200
+
+    Init scripts patch
+    
+    This patch fixes the return values to meet the standarts.
+    
+    changed values are:
+    cgconfig:
+     * start  action: 6: program is not configured
+     * status action: 3: program is not running
+    
+    cgred:
+     * start  action: 7: program is not running
+     * start  action: 6: program is not configured
+     * status action: 3: program is not running
+     * status action: 2: program is dead and /var/run pid file exists
+     * stop   action: 0: if the service is not running
+    
+    Signed-off-by: Ivana Hutarova Varekova <varekova at redhat.com>
+    Signed-off-by: Dhaval Giani <dhaval.giani at gmail.com>
+
+diff --git a/scripts/init.d/cgconfig.in b/scripts/init.d/cgconfig.in
+index 9cf2c9a..d716b40 100644
+--- a/scripts/init.d/cgconfig.in
++++ b/scripts/init.d/cgconfig.in
+@@ -112,6 +112,12 @@ start() {
+ 
+         if [ $? -eq 0 ]
+         then
++                if [ ! -s $CONFIG_FILE ]
++                then
++                    log_failure_msg $CONFIG_FILE "is not configured"
++                    return 6
++                fi
++
+                 $CGCONFIGPARSER_BIN -l $CONFIG_FILE
+                 retval=$?
+                 if [ $retval -ne 0 ]
+@@ -193,8 +199,10 @@ case $1 in
+     'status')
+         if [ -f /var/lock/subsys/$servicename ] ; then
+             echo "Running"
++            exit 0
+         else
+             echo "Stopped"
++            exit 3
+         fi
+ 	;;
+     *)
+diff --git a/scripts/init.d/cgred.in b/scripts/init.d/cgred.in
+index db9c2ac..c5b0ed5 100644
+--- a/scripts/init.d/cgred.in
++++ b/scripts/init.d/cgred.in
+@@ -34,6 +34,7 @@
+ 
+ prefix=@prefix@;exec_prefix=@exec_prefix@;sbindir=@sbindir@
+ CGRED_BIN=$sbindir/cgrulesengd
++CGRED_CONF=/etc/cgrules.conf
+ 
+ # Sanity checks
+ [ -x $CGRED_BIN ] || exit 1
+@@ -62,14 +63,21 @@ RETVAL=0
+ 
+ start()
+ {
+-	echo $"Starting CGroup Rules Engine Daemon..."
++	echo -n $"Starting CGroup Rules Engine Daemon: "
+ 	if [ -f "/var/lock/subsys/$servicename" ] ; then
+ 		log_failure_msg "$servicename is already running with PID `cat ${pidfile}`"
+-		return 1
++		return 0
++	fi
++	if [ ! -s $CGRED_CONF ]; then
++		log_failure_msg "not configured"
++		return 6
+ 	fi
+ 	daemon --check $servicename --pidfile $pidfile $CGRED_BIN $OPTIONS
+ 	RETVAL=$?
+ 	echo
++	if [ $RETVAL -ne 0 ]; then
++		return 7
++	fi
+ 	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename
+ 	echo "`pidof $processname`" > $pidfile
+ }
+@@ -77,6 +85,10 @@ start()
+ stop()
+ {
+ 	echo -n $"Stopping CGroup Rules Engine Daemon..."
++	if [ ! -f $pidfile ]; then
++		log_success_msg
++		return 0
++	fi
+ 	killproc -p $pidfile $processname -TERM
+ 	RETVAL=$?
+ 	echo
+@@ -84,19 +96,20 @@ stop()
+ 		rm -f /var/lock/subsys/$servicename
+ 		rm -f $pidfile
+ 	fi
+-	log_success_msg
+ }
+ 
+ # See how we are called
+ case "$1" in
+ 	start)
+ 		start
++		RETVAL=$?
+ 		;;
+ 	stop)
+ 		stop
++		RETVAL=$?
+ 		;;
+ 	status)
+-		status -p $pidfile $processname
++		status -p $pidfile $servicename
+ 		RETVAL=$?
+ 		;;
+ 	restart)


More information about the scm-commits mailing list