--- catalina.sh-orig 2010-10-21 12:55:25.000000000 +1300 +++ catalina.sh-mine 2010-10-21 12:54:43.000000000 +1300 @@ -306,8 +306,16 @@ if [ ! -z "$CATALINA_PID" ]; then if [ -f "$CATALINA_PID" ]; then - echo "PID file ($CATALINA_PID) found. Is Tomcat still running? Start aborted." - exit 1 + kill -0 `cat $CATALINA_PID` >/dev/null 2>&1 + if [ $? -eq 1 ]; then + echo "PID file ($CATALINA_PID) found but no matching process found." + echo "Assuming that Tomcat has failed without cleaning PID file." + echo "Starting Tomcat" + else + echo "\$CATALINA_PID set and process found. Tomcat appears to already be running." + echo "Not starting Tomcat" + exit 1 + fi fi fi