GNU/Linux >> Tutoriales Linux >  >> Linux

systemctl detiene el servicio Tomcat inmediatamente después del inicio

Gracias @MichaelHampton por el buen artículo:https://jdebp.eu/FGA/systemd-house-of-horror/tomcat.html

Explica los posibles problemas con una instalación típica sugerida en el tutorial que leí (y muchos otros copiados y pegados). No pude entender por qué surge el problema. Tal vez sea el problema con todas las capas introducidas por catalina.sh, startup.sh, etc.

Básicamente, reescribí el script de configuración de systemd y comenzó a funcionar.


Tuve exactamente el mismo problema. Solo que estaba usando Amazon Lightsail. Tal vez haya un problema con la forma en que Amazon configura sus máquinas Ubuntu y la forma descrita para crear un servicio Tomcat. Utilicé la forma descrita en una máquina Ubuntu local que configuré yo mismo y funcionó bien.

Leí el artículo de @michael-hampton y utilicé el enfoque descrito allí. Soy un novato de Linux y descubrí que tenía algunos problemas para que funcionara. Estoy incluyendo los archivos con los que terminé aquí, así que tal vez otros novatos de Linux que tienen este problema puedan tener un comienzo más fácil. Mi instalación de Tomcat está en /opt/tomcat y estos son los archivos con los que terminé:

/etc/systemd/system/tomcat.servicio

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target


[Service]
User=tomcat
Group=tomcat
UMask=0007

EnvironmentFile=/etc/default/tomcat
ExecStart=/usr/bin/env ${JAVA_HOME}/bin/java \
$JAVA_OPTS $CATALINA_OPTS \
-classpath ${CLASSPATH} \
-Dcatalina.base=${CATALINA_BASE} \
-Dcatalina.home=${CATALINA_HOME} \
-Djava.endorsed.dirs=${JAVA_ENDORSED_DIRS} \
-Djava.io.tmpdir=${CATALINA_TMPDIR} \
-Djava.util.logging.config.file=${CATALINA_BASE}/conf/logging.properties \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
org.apache.catalina.startup.Bootstrap \
start

ExecStop=/usr/bin/env ${JAVA_HOME}/bin/java \
$JAVA_OPTS $CATALINA_OPTS \
-classpath ${CLASSPATH} \
-Dcatalina.base=${CATALINA_BASE} \
-Dcatalina.home=${CATALINA_HOME} \
-Djava.endorsed.dirs=${JAVA_ENDORSED_DIRS} \
-Djava.io.tmpdir=${CATALINA_TMPDIR} \
-Djava.util.logging.config.file=${CATALINA_BASE}/conf/logging.properties \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
org.apache.catalina.startup.Bootstrap \
stop

SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

/etc/predeterminado/tomcat

CATALINA_HOME=/opt/tomcat
CATALINA_BASE=/opt/tomcat
CATALINA_TMPDIR=/opt/tomcat/temp
CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC
JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom
JAVA_ENDORSED_DIRS=/opt/tomcat/endorsed
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
CLASSPATH=/opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar

Linux
  1. Centos:¿Systemd elimina el servicio inmediatamente después del inicio?

  2. ¿Iniciar Tomcat al inicio con privilegios administrativos?

  3. systemctl:comando no encontrado

  4. Ejemplos de comandos systemctl en Linux

  5. El servicio MongoDB no se iniciará después de la configuración inicial

Cómo iniciar, detener y reiniciar servicios en Linux

Comandos Systemctl para administrar el servicio Systemd

Cómo iniciar, detener o reiniciar servicios en CentOS 8

Primeros pasos con systemctl

Inicie Ubuntu 16.04 en la línea de comando / no inicie la GUI

Advenedizo:iniciar el servicio después de un proceso no advenedizo