Vamos a crear una guía práctica que explique qué hace cada comando, cuándo utilizarlo y proporcionar ejemplos reales para administradores de sistemas y desarrolladores Java.
Instalar Apache Tomcat
- Aprende a instalar apache tomcat en Linux siguiendo los pasos correctos.
- Aprende a instalar apache tomcat en Windows con un post explicado.
Ubicación de Apache Tomcat
Cuando instalas Apache Tomcat, la estructura de directorios está organizada para separar la configuración, los binarios, las aplicaciones desplegadas y los archivos temporales.
Supongamos que lo instalaste en:
- Windows:
c:/tomcat - Linux:
/opt/tomcat/
Esta sería la descripción de cada elemento.
ls -l /opt/tomcat/bin
Verás varios archivos .sh. Los más importantes son los siguientes.
| Script | Uso | Descripción |
|---|---|---|
startup.sh |
Iniciar | Inicia Tomcat en segundo plano (background). Internamente llama a catalina.sh start. |
shutdown.sh |
Detener | Detiene el servidor Tomcat enviando la orden de apagado al puerto de shutdown. Internamente llama a catalina.sh stop. |
catalina.sh |
Administración | Es el script principal de Tomcat. Permite iniciar, detener, depurar y ejecutar Tomcat de diferentes formas. |
setclasspath.sh |
Interno | Configura el classpath de Java. No se ejecuta manualmente. |
configtest.sh |
Verificación | Comprueba que la configuración sea válida antes de iniciar Tomcat. |
digest.sh |
Seguridad | Genera hashes para autenticación (Realm Digest). |
makebase.sh |
Instalación | Crea una estructura CATALINA_BASE independiente. Útil para ejecutar varias instancias de Tomcat. |
tool-wrapper.sh |
Herramientas | Script utilizado por herramientas internas de Tomcat. |
daemon.sh |
Unix Daemon | Permite ejecutar Tomcat como un daemon usando jsvc. |
version.sh |
Información | Muestra la versión de Tomcat y de Java. |
En el posts Carpetas y archivos de Apache Tomcat: estructura completa explico a detalle los archivos mas importantes.
El script más importante: catalina.sh
La mayoría de los demás scripts simplemente llaman a catalina.sh con diferentes parámetros.
Su sintaxis es:
./catalina.sh <comando>
Los comandos disponibles son:
| Comando | Descripción |
|---|---|
run |
Ejecuta Tomcat en primer plano. La consola queda ocupada y muestra todos los logs. Muy útil para desarrollo. |
start |
Inicia Tomcat en segundo plano. Devuelve el control a la terminal. |
stop |
Detiene Tomcat. |
configtest |
Comprueba la configuración antes de arrancar. |
jpda start |
Inicia Tomcat con el depurador remoto JPDA habilitado. |
jpda run |
Ejecuta en primer plano con depuración remota. |
version |
Muestra la versión de Tomcat. |
startup.sh
Equivale a:
./catalina.sh start
Uso:
cd /opt/tomcat/bin
./startup.sh
Salida típica:
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr/lib/jvm/java-21-openjdk
Using CLASSPATH: ...
Tomcat started.
shutdown.sh
Detiene el servidor.
./shutdown.sh
Equivale a:
./catalina.sh stop
Ejecutar Tomcat en modo consola
Es la forma recomendada cuando estás desarrollando.
cd /opt/tomcat/bin
./catalina.sh run
Ventajas:
- ves todas las excepciones
- ves los logs en tiempo real
- puedes detener con Ctrl+C
- ideal para depuración
Ejecutar en segundo plano
./catalina.sh start
Después puedes comprobar que está funcionando:
ps -ef | grep tomcat
o
ps -ef | grep java
Detener
./catalina.sh stop
Si tarda mucho:
./catalina.sh stop 30 -force
Esto espera 30 segundos y luego fuerza el cierre del proceso si aún sigue ejecutándose.
Verificar la configuración
Antes de arrancar puedes ejecutar:
./configtest.sh
o
./catalina.sh configtest
Si todo está correcto verás algo similar a:
Configuration OK
Modo depuración (JPDA)
Para conectar un IDE (por ejemplo, VS Code o IntelliJ) al proceso de Tomcat:
./catalina.sh jpda start
Por defecto abre el puerto: 8000
Desde el IDE podrás conectarte para depurar la aplicación.
Ver la versión
./version.sh
o
./catalina.sh version
Salida típica:
Server version: Apache Tomcat/11.x.x
Server built: ...
OS Name: Linux
JVM Version: 21
Ver los logs
Los logs se almacenan en:
/opt/tomcat/logs
Para seguir el log principal en tiempo real:
tail -f /opt/tomcat/logs/catalina.out
Para ver los últimos registros:
tail -100 /opt/tomcat/logs/catalina.out
Flujo típico sin systemd
Cuando administras Tomcat manualmente, el ciclo habitual es:
# Ir al directorio de scripts
cd /opt/tomcat/bin
# Verificar la configuración
./configtest.sh
# Iniciar Tomcat en segundo plano
./startup.sh
# Comprobar que el proceso está en ejecución
ps -ef | grep tomcat
# Seguir los logs
tail -f /opt/tomcat/logs/catalina.out
# Detener el servidor
./shutdown.sh
Para entornos de desarrollo, suele ser más conveniente usar:
cd /opt/tomcat/bin
./catalina.sh run
ya que toda la salida del servidor aparece directamente en la consola y facilita la identificación de errores.