GNU/Linux >> Tutoriels Linux >  >> Linux

systemctl arrête le service Tomcat immédiatement après le démarrage

Merci @MichaelHampton pour le bon article :https://jdebp.eu/FGA/systemd-house-of-horror/tomcat.html

Il explique les problèmes possibles avec une installation typique suggérée dans le tutoriel que j'ai lu (et des tonnes d'autres copiés-collés). Je ne pouvais pas comprendre pourquoi le problème se pose. C'est peut-être le problème avec toutes les couches introduites par catalina.sh, startup.sh, etc.

Donc, fondamentalement, j'ai réécrit le script de configuration systemd et il a commencé à fonctionner.


J'ai eu exactement le même problème. Seulement j'utilisais Amazon Lightsail. Il y a peut-être un problème avec la façon dont Amazon configure ses machines Ubuntu et la manière décrite de créer un service Tomcat. J'ai utilisé la méthode décrite sur une machine Ubuntu locale que j'ai configurée moi-même et qui a bien fonctionné.

J'ai lu l'article de @michael-hampton et j'ai utilisé l'approche qui y est décrite. Je suis un noob Linux, et j'ai trouvé que j'avais quelques problèmes pour le faire fonctionner. J'inclus les fichiers avec lesquels je me suis retrouvé ici, donc peut-être que d'autres noobs Linux qui ont ce problème peuvent démarrer plus facilement. Mon installation Tomcat se trouve dans /opt/tomcat et voici les fichiers avec lesquels j'ai fini :

/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. Pourquoi Systemd arrête-t-il le service immédiatement après son démarrage ?

  2. Lancer Tomcat au démarrage avec des privilèges administratifs ?

  3. Le service Systemctl a expiré lors du démarrage ?

  4. Commandes de service de base

  5. Utiliser Systemctl pour gérer les services

Comment démarrer, arrêter et redémarrer les services sous Linux

Commandes Systemctl pour gérer le service Systemd

Comment démarrer, arrêter ou redémarrer les services dans CentOS 8

Premiers pas avec systemctl

Systemd :Utiliser à la fois After et Requires

Démarrez Ubuntu 16.04 en ligne de commande / ne démarrez pas l'interface graphique