Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jun 2011 20:27:35 GMT
From:      Phil Phillips <pphillips@experts-exchange.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/158410: [PATCH] www/tomcat55: improve pidfile handling in rc script
Message-ID:  <201106282027.p5SKRZXm035748@red.freebsd.org>
Resent-Message-ID: <201106282030.p5SKUAnL056552@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         158410
>Category:       ports
>Synopsis:       [PATCH] www/tomcat55: improve pidfile handling in rc script
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jun 28 20:30:09 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Phil Phillips
>Release:        8.2-RELEASE
>Organization:
Experts Exchange, LLC
>Environment:
FreeBSD ip3.experts-exchange.com 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Thu Feb 17 02:41:51 UTC 2011     root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
The current rc script for tomcat55 doesn't seem to stop the java process properly.  The rc script also oddly handles the pidfile.

I reworked the rc script to make sure tomcat stops, and removes the pidfile completely.  Included with this PR is a patch for files/tomcat55.sh.in
>How-To-Repeat:
# service tomcat55 stop
--> If tomcat_wait_max_for_pid times out, then the java process is still running
>Fix:


Patch attached with submission follows:

--- tomcat55.sh.in.orig	2011-06-28 13:07:26.000000000 -0700
+++ tomcat55.sh.in	2011-06-28 13:11:22.000000000 -0700
@@ -132,31 +132,20 @@
 }
 
 tomcat%%TOMCAT_VERSION%%_stop() {
-	rc_pid=$(check_pidfile $pidfile $procname)
-
-	if [ -z `cat $pidfile` ]; then
-		[ -n `cat $pidfile` ] && return 0
-		if [ -n `cat $pidfile` ]; then
-			echo "${name} not running? (check $pidfile)."
-		else
-			echo "${name} not running?"
-		fi
+	if [ ! -e "$pidfile" ]; then
+		echo "${name} not running? (check $pidfile)."
 		return 1
 	fi
 	
 	echo "Stopping ${name}."
 	${java_command} stop
 	tomcat_wait_max_for_pid ${tomcat%%TOMCAT_VERSION%%_stop_timeout} `cat $pidfile`
-	kill -KILL ${rc_pid} 2> /dev/null && echo "Killed."
-	echo -n > ${pidfile}
+	kill -KILL `cat $pidfile` 2> /dev/null && echo "Killed."
+	rm -f ${pidfile}
 }
 
 tomcat%%TOMCAT_VERSION%%_status() {
-	if [ ! -f $pidfile ]; then
-          pid_touch
-        fi
-
-	if [ -z `cat $pidfile` ]; then
+	if [ ! -e "$pidfile" ]; then
 	  echo "${name} is not running."
 	  return 1
 	else


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106282027.p5SKRZXm035748>