GNU/Linux >> Linux の 問題 >  >> Linux

systemctl は起動直後に Tomcat サービスを停止します

良い記事をありがとう @MichaelHampton:https://jdebp.eu/FGA/systemd-house-of-horror/tomcat.html

私が読んだチュートリアル(および他の多くのコピーペーストされたもの)で提案された典型的なインストールで起こりうる問題について説明します。問題が発生する理由がわかりませんでした。おそらく、catalina.sh、startup.sh などによって導入されたすべてのレイヤーの問題です。

したがって、基本的に、systemd構成スクリプトを書き直したところ、機能し始めました。


私はまったく同じ問題を抱えていました。私だけが Amazon Lightsail を使用していました。 Amazon が Ubuntu マシンを構成する方法と、説明されている Tomcat サービスを作成する方法に問題がある可能性があります。私は自分でセットアップしたローカル Ubuntu マシンで上記の方法を使用しましたが、問題なく動作しました。

@michael-hampton の記事を読み、そこで説明されているアプローチを使用しました。私は Linux 初心者ですが、Linux を動作させるのに問題があることがわかりました。最終的にここにファイルを含めているので、この問題を抱えている他の Linux 初心者が簡単に始めることができるかもしれません。 Tomcat のインストールは /opt/tomcat にあり、これらは最終的に次のファイルです:

/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. Centos – Systemdは開始直後にサービスを終了しますか?

  2. 管理者権限で起動時にTomcatを起動しますか?

  3. Systemctlを使用してサービスを管理する

  1. systemctl:コマンドが見つかりません

  2. 初期セットアップ後に MongoDB サービスが開始されない

  3. systemd:起動直後の SIGTERM

  1. systemctl ステータスが非アクティブのデッドを示す

  2. ユーザーのログイン後に systemd サービスを開始し、ユーザーのログアウト前に停止する方法

  3. Ubuntu 16.04 をコマンド ラインで起動する / GUI を起動しない