Script init.d Tomcat
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script d'init SysV |
| Emplacement | /etc/init.d/tomcat_<APP>
|
| Voir aussi | Tomcat |
Script de démarrage/arrêt SysV pour une instance Tomcat. Il est fonctionnel en l'état ; il suffit de renseigner les deux variables USER (utilisateur système propriétaire du Tomcat) et APP_NAME (nom de l'instance).
Script
#!/bin/bash
#
# tomcat Démarre et arrête Tomcat
#
# chkconfig: 345 85 15
#
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Description: Servlet 2.5 / JSP 2.1
# Short-Description: start and stop tomcat
### END INIT INFO
## Source function library.
. /etc/rc.d/init.d/functions
export USER=changeme
export APP_NAME=changeme
export JAVA_HOME=/usr/bin/java
export LOG_HOME=/var/log/$APP_NAME
export PATH=$JAVA_HOME/bin:$PATH
export TOMCAT_HOME=/APPDIR/tomcat/$APP_NAME
SHUTDOWN_WAIT=10
RETVAL=0
umask 077
tomcat_pid() {
echo `ps aux | grep $USER | grep -v grep | awk '{ print $2 }'`
}
start() {
pid=$(tomcat_pid)
if [ -n "$pid" ]; then
echo "Tomcat is already running (pid: $pid)"
else
echo "Starting tomcat"
ulimit -n 100000
umask 007
logger -s "Start $APP_NAME"
/bin/su - $USER -c $TOMCAT_HOME/bin/startup.sh
return $RETVAL
fi
return 0
}
stop() {
pid=$(tomcat_pid)
if [ -n "$pid" ]; then
echo "Stopping Tomcat"
logger -s "Stop $APP_NAME"
/bin/su - $USER -c $TOMCAT_HOME/bin/shutdown.sh
let kwait=$SHUTDOWN_WAIT
count=0
until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]; do
echo -n -e "\nwaiting for processes to exit"
sleep 1
let count=$count+1
done
if [ $count -gt $kwait ]; then
echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds\n"
kill -9 $pid
fi
else
echo "Tomcat is not running"
fi
return 0
}
version() {
if [ -f $TOMCAT_HOME/bin/version.sh ]; then
logger -s "Display $APP_NAME Version"
/bin/su -l $USER -c $TOMCAT_HOME/bin/version.sh
return $RETVAL
fi
}
case $1 in
start) start ;;
stop) stop ;;
restart|reload) stop; sleep 5; start ;;
status)
pid=$(tomcat_pid)
if [ -n "$pid" ]; then
echo "Tomcat is running with pid: $pid"
else
echo "Tomcat is not running"
fi
;;
version) version ;;
*)
echo "Usage: $0 {start|stop|restart|reload|status|version}"
exit 1
;;
esac
exit 0