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