GNU/Linux >> Znalost Linux >  >> Linux

systemctl zastaví službu Tomcat ihned po spuštění

Díky @MichaelHampton za dobrý článek:https://jdebp.eu/FGA/systemd-house-of-horror/tomcat.html

Vysvětluje možné problémy s typickou instalací navrženou v tutoriálu, který jsem četl (a spoustě dalších zkopírovaných). Nemohl jsem přijít na to, proč problém vzniká. Možná je to problém se všemi vrstvami zavedenými catalina.sh, startup.sh atd.

V podstatě jsem tedy přepsal konfigurační skript systemd a začalo to fungovat.


Měl jsem úplně stejný problém. Pouze já jsem používal Amazon Lightsail. Možná je problém se způsobem, jakým Amazon konfiguruje své stroje Ubuntu, a popsaným způsobem vytvoření služby Tomcat. Použil jsem popsaný způsob na místním počítači Ubuntu, který jsem si sám nastavil a který fungoval dobře.

Přečetl jsem si článek od @michael-hampton a použil jsem tam popsaný přístup. Jsem linuxový noob a zjistil jsem, že mám nějaké problémy s tím, aby to fungovalo. Zahrnuji sem soubory, se kterými jsem skončil, takže možná ostatní Linuxoví noobové, kteří mají tento problém, mohou začít snadněji. Moje instalace Tomcat je na /opt/tomcat a skončil jsem se soubory:

/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. Proč Systemd zastavuje službu ihned po jejím spuštění?

  2. Spustit Tomcat při spuštění s administrátorskými oprávněními?

  3. Ke správě služeb použijte Systemctl

  1. systemctl:příkaz nenalezen

  2. Příklady příkazů systemctl v Linuxu

  3. Systemd:Použití After a Requires

  1. Centos – Systemd ukončí službu ihned po spuštění?

  2. Jak spustit službu systemd po přihlášení uživatele a zastavit ji před odhlášením uživatele

  3. Spusťte Ubuntu 16.04 do příkazového řádku / nespouštějte GUI