Tomcat como servicio
Autor: gacuj | Archivado en: General, Linux el día 14/Mar/2005
Para poder controlar Tomcat como si fuese un servicio, que es sin lugar a dudas más cómodo y elegante, tenemos que crear un fichero (al que llamaremos tomcat) en /etc/rc.d/init.d que contenga las siguientes líneas:
#!/bin/bash
#
# Startup script for the Tomcat server
#
# chkconfig: - 83 53
# description: Starts and stops the Tomcat daemon.
# processname: tomcat
# pidfile: /var/run/tomcat.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Get config.
. /etc/sysconfig/network
# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0
tomcat=/usr/java/jakarta-tomcat-5.0.18 #aquí escribimos el camino que tengamos
startup=$tomcat/bin/startup.sh
shutdown=$tomcat/bin/shutdown.sh
start(){
echo -n $”Starting Tomcat service: ”
$tomcat/bin/startup.sh
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat
return $RETVAL
}
stop(){
action $”Stopping Tomcat service: ”
$tomcat/bin/shutdown.sh
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat /var/run/tomcat
}
restart(){
stop
start
}
# See how we were called.
case “$1″ in
start)
start
;;
stop)
stop
;;
status)
if
condicion
then
echo “El servicio Tomcat está arriba”
else
echo “El servicio Tomcat está parado”
fi
;;
restart)
restart
;;
*)
echo $”Usage: $0 {start|stop|status|restart}”
exit 1
esac
exit 0
En todo esto lo más importante está en establecer la condición para cuando queremos comprobar el estado del servicio. Una buena idea es tener en cuenta lo siguiente: mediante telnet podemos comprobar el estado de un servicio web. ¿Cómo?. La respuesta está en combinar HTTP con telnet. Tecleamos telnet IP puerto (retorno de carro) y a continuación HEAD / HTTP/1.0 (dos veces retorno de carro). Esto nos devuelve una cabecera en la que está incluido el código devuelto al consultar la página principal del servidor en cuestión. Tenemos que buscar el código 200 OK que nos certifica que podemos acceder a la página índice del servidor.
Os animo a que desarrolleis esta parte y la compartais.
Bueno, evidentemente tendríamos que añadir el servicio a continuación con chkconfig y definir los niveles en los que queremos que esté funcionando.












Hola.
Escribo porque encontre una forma más facil de hacer todo el proceso. Está aqui: http://www.jguru.com/faq/view.jsp?EID=425628 .
(Tengo tomcat 5.0.28 y funciono en Debian-Ubuntu)
Esta es la idea, lo probe hace 2 minutos y funcionó:
1)Se edita el archivo /usr/local/tomcat/bin/catalina.sh poniendole al principio esta linea
export JAVA_HOME=’/usr/local/j2sdk1.4.2_10/’
//- /usr/local/j2sdk1.4.2_10/ se reemplaza por el directorio donde está java
2) ln -s /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
//se crea un LINK simbolico de catalina.sh a tomcat
//usr/local/tomcat/ se reemplaza por el directorio donde está tomcat
3) ln -s /etc/rc.d/init.d/tomcat /etc/rc2.d/S99tomcat
//se crea un LINK simbolico de tomcat (el link que creamos antes) al lugar donde está nuestro inicio por defecto //(el runlevel) en mi caso, mi runlevel es 2 (se puede ver /etc/inittab para saber cual está por defecto)
Tambien se podria añadir la funcionalidad de “estado” pero habría que editar el archivo CATALINA_HOME/catalina.sh