diff -urN init.d.orig/tomcat-7 init.d/tomcat-7 --- init.d.orig/tomcat-7 2012-11-28 15:41:55.000000000 -0500 +++ init.d/tomcat-7 2012-11-28 14:53:02.000000000 -0500 @@ -6,6 +6,7 @@ extra_commands="forcestop" init_env_vars() { + PIDFILE=/var/run/tomcat-7.pid # Populate JAVA_HOME JAVA_HOME=`java-config --jre-home` @@ -37,16 +38,22 @@ -Dcatalina.home=${CATALINA_HOME} \ -Djava.io.tmpdir=${CATALINA_TMPDIR} \ org.apache.catalina.startup.Bootstrap " + + DAEMONPATH=`java-config -p commons-daemon` } ssd() { local exec=${1} shift - start-stop-daemon --start --quiet --background \ - --chdir "${CATALINA_TMPDIR}" \ - --user ${CATALINA_USER}:${CATALINA_GROUP} \ - --make-pidfile --pidfile /var/run/tomcat-7.pid \ - --exec ${exec} -- ${OPTS_CP} "$@" ${CATALINA_ARGS} ${TOMCAT_START} + jsvc ${JAVA_OPTS} ${CATALINA_OPTS} \ + -java-home ${JAVA_HOME} \ + -classpath ${CLASSPATH}:${DAEMONPATH} \ + -user ${CATALINA_USER} \ + -outfile /var/log/tomcat-7/fix.log \ + -errfile '&1' \ + -pidfile ${PIDFILE} \ + -procname tomcat-7 \ + ${CATALINA_ARGS} "$@" return $? } @@ -92,15 +99,20 @@ stop() { ebegin "Stopping Tomcat" init_env_vars - start-stop-daemon --stop --quiet --retry=60 \ - --pidfile /var/run/tomcat-7.pid \ - --exec ${JAVA_HOME}/bin/java -- ${OPTS_CP} ${CATALINA_args} stop ${STD_OUT} + jsvc -stop \ + -pidfile ${PIDFILE} \ + ${CATALINA_ARGS} eend $? } forcestop() { ebegin "Forcing Tomcat to Stop" - start-stop-daemon --stop --quiet --retry=60 \ - --pidfile /var/run/tomcat-7.pid --signal=9 + jsvc -stop \ + -pidfile ${PIDFILE} \ + ${CATALINA_ARGS} + wait 10 + if [ -f ${PIDFILE} ]; then + kill -9 `cat ${PIDFILE}` + fi if service_started "${SVCNAME}"; then mark_service_stopped "${SVCNAME}" fi