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