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

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


commit 5d759f7b580aa51232c52378f4fd8e31bb9b01eb
Author: Jan Safranek <jsafrane at redhat.com>
Date:   Mon Aug 2 16:45:50 2010 +0200

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

 libcgroup-0.36.2-initscripts.patch |  123 ++++++++++++++++++++++++++++++++++++
 libcgroup.spec                     |    8 ++-
 2 files changed, 130 insertions(+), 1 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)
diff --git a/libcgroup.spec b/libcgroup.spec
index 4d9eb9c..6da0d0b 100644
--- a/libcgroup.spec
+++ b/libcgroup.spec
@@ -4,13 +4,14 @@ Name: libcgroup
 Summary: Tools and libraries to control and monitor control groups
 Group: Development/Libraries
 Version: 0.35.1
-Release: 2%{?dist}
+Release: 3%{?dist}
 License: LGPLv2+
 URL: http://libcg.sourceforge.net/
 Source0: http://downloads.sourceforge.net/libcg/%{name}-%{version}.tar.bz2
 Source1: README.Fedora
 Patch1: fedora-config.patch
 Patch2: fedora-fix-initscripts.patch
+Patch3: libcgroup-0.36.2-initscripts.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: pam-devel
 BuildRequires: byacc
@@ -46,6 +47,7 @@ provide scripts to manage that configuration.
 %setup -q
 %patch1 -p1 -b .config
 %patch2 -p1 -b .lsb
+%patch3 -p1 -b .running
 
 %build
 %configure --bindir=/bin --sbindir=/sbin --libdir=/%{_lib}
@@ -138,6 +140,10 @@ fi
 
 
 %changelog
+* Mon Aug  2 2010 Jan Safranek <jsafrane at redhat.com> 0.35-3
+- Fix initscripts to report stopped cgconfig service as not running
+  (#619091)
+
 * Thu Jun 24 2010 Jan Safranek <jsafrane at redhat.com> 0.35-2
 - Relax the dependency on redhat-lsb (#607189)
 


More information about the scm-commits mailing list