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