GNU/Linux >> Linux Esercitazione >  >> Linux

systemctl arresta il servizio Tomcat immediatamente dopo l'avvio

Grazie @MichaelHampton per l'ottimo articolo:https://jdebp.eu/FGA/systemd-house-of-horror/tomcat.html

Spiega i possibili problemi con un'installazione tipica suggerita nel tutorial che ho letto (e tonnellate di altri copia-incolla). Non sono riuscito a capire perché si presenta il problema. Forse è il problema con tutti i livelli introdotti da catalina.sh, startup.sh, ecc.

Quindi, in pratica, ho riscritto lo script di configurazione di systemd e ha iniziato a funzionare.


Ho avuto lo stesso identico problema. Solo io stavo usando Amazon Lightsail. Forse c'è un problema con il modo in cui Amazon configura le proprie macchine Ubuntu e il modo descritto per creare un servizio Tomcat. Ho usato il modo descritto su una macchina Ubuntu locale che ho configurato io stesso e che ha funzionato bene.

Ho letto l'articolo di @michael-hampton e ho usato l'approccio qui descritto. Sono un principiante di Linux e ho scoperto di avere dei problemi a farlo funzionare. Sto includendo i file con cui sono finito qui, quindi forse altri niubbi Linux che hanno questo problema possono iniziare più facilmente. La mia installazione di Tomcat è in /opt/tomcat e questi sono i file con cui sono finito:

/etc/systemd/system/tomcat.service

[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/default/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. Perché Systemd interrompe il servizio immediatamente dopo l'avvio?

  2. Avvia Tomcat all'avvio con privilegi amministrativi?

  3. Servizio Systemctl scaduto durante l'avvio?

  4. Comandi del servizio di base

  5. Usa Systemctl per gestire i servizi

Come avviare, arrestare e riavviare i servizi in Linux

Comandi Systemctl per gestire il servizio Systemd

Come avviare, arrestare o riavviare i servizi in CentOS 8

Iniziare con systemctl

lo stato systemctl mostra inattivo morto

Avvia Ubuntu 16.04 nella riga di comando / non avviare la GUI