#!/bin/bash # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # # cloudstack-management This shell script takes care of starting and stopping Tomcat # # chkconfig: - 80 20 # ### BEGIN INIT INFO # Provides: tomcat6 # Required-Start: $network $syslog # Required-Stop: $network $syslog # Default-Start: # Default-Stop: # Description: Release implementation for Servlet 2.5 and JSP 2.1 # Short-Description: start and stop tomcat ### END INIT INFO # # - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot # - heavily rewritten by Deepak Bhole and Jason Corley # if [ -r /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functions fi if [ -r /lib/lsb/init-functions ]; then . /lib/lsb/init-functions fi NAME="$(basename $0)" export SERVICE_NAME="$NAME" stop() { SHUTDOWN_WAIT="30" count="0" if [ -f /var/run/${NAME}.pid ]; then pid=`cat /var/run/${NAME}.pid` kill $pid &>/dev/null until [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ] || \ [ "$count" -gt "$SHUTDOWN_WAIT" ] do sleep 1 let count="${count}+1" done if [ "$(ps --pid $pid | grep -c $pid)" -eq "0" ]; then log_success_msg "Stopping ${NAME}:" rm -f /var/run/${NAME}.pid rm -f /var/lock/subsys/${NAME} else log_failure_msg "Stopping ${NAME}:" fi else echo "Cannot find PID file of ${NAME}" log_failure_msg "Stopping ${NAME}:" fi } set_ulimit() { fd_limit=`ulimit -n` if [ "$fd_limit" != "4096" ]; then user=`whoami` if [ $user == "root" ]; then ulimit -n 4096 fi fi } handle_pid_file() { if [ "$1" -ne 0 ] && [ "$1" -ne 3 ]; then echo "The pid file locates at /var/run/${NAME}.pid and lock file at /var/lock/subsys/${NAME}. Starting ${NAME} will take care of them or you can manually clean up." fi } start() { source $(dirname $0)/tomcat.sh } # See how we were called. case "$1" in status) status ${NAME} RETVAL=$? handle_pid_file $RETVAL ;; stop) stop ;; restart) stop set start set_ulimit start ;; *) set_ulimit start esac exit $RETVAL