Created
April 6, 2015 15:23
-
-
Save andrewshulgin/b9dbfc1295ed988724da to your computer and use it in GitHub Desktop.
Tomcat initscript for CentOS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# chkconfig: - 80 20 | |
# description: Start/stop script for Tomcat | |
# Source function library. | |
. /etc/rc.d/init.d/functions | |
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network | |
[ "${NETWORKING}" = "no" ] && exit 0 | |
prog="tomcat" | |
[ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog | |
TOMCATDEBUG= | |
TOMCATSECURITY=${SECURITY:+"-security"} | |
CATALINA_HOME=${CATALINA_HOME:="/usr/local/tomcat"} | |
RUNAS_USER=${RUNAS_USER:="tomcat"} | |
WAITFOR=${WAITFOR:=3} | |
CATALINA_PID="/var/run/${prog}.pid" | |
RUN_SCRIPT="${CATALINA_HOME}/bin/catalina.sh" | |
CDIR=$(pwd) | |
JUNK=${JAVA_HOME:?"MUST BE CONFIGURED IN /etc/sysconfig/$prog"} | |
if [ ! -d $JAVA_HOME ]; then | |
echo "$JAVA_HOME doesn't exist!" | |
exit 1 | |
fi | |
if [ ! -d $CATALINA_HOME ]; then | |
echo CATALINA_HOME does not exist as a valid directory: $CATALINA_HOME | |
exit 1 | |
fi | |
export CATALINA_HOME CATALINA_PID JAVA_HOME | |
cleanup() { | |
rm -f ${CATALINA_PID} | |
} | |
echoFailure() { | |
echo_failure | |
echo | |
} | |
echoSuccess() { | |
echo_success | |
echo | |
} | |
start() { | |
echo -n "Starting $prog..." | |
STATUS=$(status >/dev/null) | |
R=$? | |
if [ $R -eq 0 ]; then | |
echo -n "$prog is already running. exiting." | |
echoFailure | |
return 1 | |
fi | |
touch ${CATALINA_PID} | |
chown ${RUNAS_USER}:${RUNAS_USER} ${CATALINA_PID} | |
cd ${CATALINA_HOME} | |
runuser -s /bin/bash ${RUNAS_USER} -c "${RUN_SCRIPT} start >>${CATALINA_HOME}/logs/catalina.out 2>&1" | |
RETVAL=$? | |
cd ${CDIR} | |
if [ $RETVAL -eq 0 ]; then | |
echoSuccess | |
else | |
echoFailure | |
fi | |
} | |
status() { | |
RETVAL=1 | |
if [ -s ${CATALINA_PID} ]; then | |
read kpid < ${CATALINA_PID} | |
if checkpid $kpid 2>&1; then | |
echo "$prog is running ($kpid)" | |
RETVAL=0 | |
else | |
echo "The lock file was found but no process running for pid $kpid." | |
fi | |
else | |
CHECKPROC="Dcatalina.home=${CATALINA_HOME}.*org.apache.catalina.startup.Bootstrap" | |
pid="$(pgrep -u ${RUNAS_USER} -f ${CHECKPROC})" | |
if [ -n "$pid" ]; then | |
echo "$prog is running ($pid) but no PID file exists (or it's empty)." | |
RETVAL="0" | |
else | |
echo "$prog is stopped." | |
fi | |
fi | |
return $RETVAL | |
} | |
stop() { | |
echo -n "Stopping $prog." | |
if status >/dev/null; then | |
runuser -s /bin/bash ${RUNAS_USER} -c "${RUN_SCRIPT} stop >>${CATALINA_HOME}/logs/catalina.out 2>&1" | |
COUNT=0 | |
while [ $COUNT -lt ${WAITFOR} ]; do | |
if status >/dev/null; then | |
echo -n "." | |
sleep 1 | |
else | |
echoSuccess | |
cleanup | |
return | |
fi | |
COUNT=$(expr $COUNT + 1) | |
done | |
echo | |
echo -n "$prog didn't stop, killing it softly.." | |
CHECKPROC="Dcatalina.home=${CATALINA_HOME}.*org.apache.catalina.startup.Bootstrap" | |
pid="$(pgrep -u ${RUNAS_USER} -f ${CHECKPROC})" | |
kill $pid | |
sleep 4 | |
if status >/dev/null; then | |
echo | |
echo "Shutdown is taking too long, force stopping $prog." | |
kill -9 $pid | |
if status >/dev/null; then | |
echoFailure | |
else | |
echoSuccess | |
cleanup | |
return | |
fi | |
else | |
echoSuccess | |
cleanup | |
return | |
fi | |
else | |
echo | |
echo -n "$prog is not running. Exiting." | |
echoFailure | |
fi | |
} | |
case "$1" in | |
start) start;; | |
stop) stop;; | |
status) status;; | |
restart) stop ; start;; | |
*) echo "Usage: $0 {start|stop|status|restart}";; | |
esac |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Tomcat Configuration file | |
# JAVA_HOME | |
# | |
# This is the $JAVA_HOME of JDK, not JRE. not needed if you've setup | |
# the file "/etc/profile.d/java.sh" with this variable. | |
export JAVA_HOME="/usr/java/default" | |
# CATALINA_HOME | |
# | |
# This is the installation directory of Tomcat. | |
# Default is /usr/local/tomcat. | |
#CATALINA_HOME="/usr/local/tomcat" | |
# RUNAS_USER | |
# | |
# The unprivileged user that runs Tomcat. | |
# Default is tomcat. | |
#RUNAS_USER="tomcat" | |
# WAITFOR | |
# | |
# How long (in seconds) to let Tomcat try to exit normally. After that | |
# period it'll be killed. | |
# Default is 30 seconds. | |
#WAITFOR=30 | |
# SECURITY | |
# | |
# Uncomment to run Tomcat with a security manager. | |
#declare SECURITY | |
# JAVA_OPTS | |
# | |
# This variable is used by tomcat as additional parameters to java. | |
# It could be defined either here or in "$CATALINA_HOME/bin/setenv.sh" | |
#export JAVA_OPTS= |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment