Hi,
When i start tomcat6 (on a SLES 11 box) two times without a stop in between, rctomcat6 status results into dead state.
I checked the rctomcat6 start script, in this case when the tomcat6 is already running and a rctomcat6 start is done, it display a msg that “process already running”, but it continues in the start function further down & executes the TOMCAT_SCRIPT(dtomcat6) script with the start argument. And after that pid in the tomcat6.pid file gets changed but the process keeps running with the old pid, and hence when we do a rctomcat6 status, it results into dead state(bcoz it doesn’t find any process running with that pid).
I think it shouldn’t execute the TOMCAT_SCRIPT in this case, so in case when checkpid is success(in start function), i put an exit after the echo msg " process already running", this solves the problem, but is this the correct solution ?
function start() {
echo -n “Starting Tomcat ($CATALINA_BASE)”
if -f “/var/lock/subsys/${NAME}” ] ; then
if -f “/var/run/${NAME}.pid” ]; then
read kpid < /var/run/${NAME}.pid
if checkpid $kpid 2>&1; then
echo “$NAME process already running”
rc_failed 0
#The below exit i have put to exit from the func in case java is already running with #the pid in the tomcat6.pid file
exit
else
echo -n "lock file found but no process running for pid $kpid, continuing"
rc_failed 7
fi
fi
fi
…
…
~ rahul