質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

2943閲覧

tomcat が起動しなくなりました

usa_kame

総合スコア1

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2023/06/29 04:43

編集2023/06/29 09:11

Linux + Tomcat でGroupSessionを5年ほど動かしていますが、今回初めてTomcatの再起動が必要になり
#systemctl restart tomcat を実行したところ

「Job for tomcat.service failed because the control process exited with error code. See "systemctl status tomcat.service" and "journalctl -xe" for details.」と表示されました。

色々ためしているうちに、tomcatが停止したのか、Groupsessionが動かなくなり、

Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

が表示されました。

tomcatが起動しなおそうと、/usr/local/java/apache-tomcat-8.0.53/bin/startup.sh を実行したら、
Using CATALINA_BASE: /usr/local/java/apache-tomcat-8.0.53
Using CATALINA_HOME: /usr/local/java/apache-tomcat-8.0.53
Using CATALINA_TMPDIR: /usr/local/java/apache-tomcat-8.0.53/temp
Using JRE_HOME: /usr/local/java/jdk1.8.0_181
Using CLASSPATH: /usr/local/java/apache-tomcat-8.0.53/bin/bootstrap.jar:/usr/local/java/apache-tomcat-8.0.53/bin/tomcat-juli.jar
Tomcat started.
と表示されたので、
#systemctl status tomcat を実行したところ

systemd[1]: Starting Apache Tomcat 8.0.53...
startup.sh[2188]: touch: cannot touch '/usr/local/java/apache-tomcat-8.0.53/lo■denied
systemd[1]: tomcat.service: main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start Apache Tomcat 8.0.53.
systemd[1]: Unit tomcat.service entered failed state.
systemd[1]: tomcat.service failed.

【tomcat.service】
[Unit]
Description=Apache Tomcat 8.0.53
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
RemainAfterExit=yes

Environment=JAVA_HOME=/usr/local/java/
Environment=CATALINA_PID=/usr/local/java/apache-tomcat-8.0.53/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/java/apache-tomcat-8.0.53
Environment=CATALINA_BASE=/usr/local/java/apache-tomcat-8.0.53
Environment='CATALINA_OPTS=-server -Xms4000M -Xmx8000M -XX:MaxPermSize=2000M'
ExecStart=/usr/local/java/apache-tomcat-8.0.53/bin/startup.sh
ExecStop=/usr/local/java/apache-tomcat-8.0.53/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

startup.sh でTomcat started.となっても起動していないことはあるのですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Type=oneshot で PIDFile= も設定されていないので、手動で startup.sh で起動したプロセスを systemd 側では追跡できません。

(参考) systemctlにてtomcatが起動しない

以下の手順で確認するといいと思います。

  • 手動で startup.sh で起動した後、ss -tlnnetstat -tln で 8009 番ポートが LISTEN していますか?
    8009 番ポートが見つからなければ起動に失敗していますので、catalina.log などログを確認ください。

  • もし、startup.sh を root ユーザーで起動したのであれば、一旦停止し、tomcat ユーザーで起動できるか(8009 番ポートが LISTEN するか)確認ください。

  • 手動で起動した tomcat (java プロセス) をすべて停止した状態で、systemctl start tomcat で起動できるか確認ください。

投稿2023/06/29 12:48

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

usa_kame

2023/06/29 23:14 編集

ss -tln で確認したところ、8009番ポートはLISTEN していませんでした。 catalina.log を確認すると、エラーになっていました。 =============================================================== WARNING [main] org.apache.catalina.startup.Catalina.load Catalina.start using conf/server.xml: Attribute name "minSpareThreads" associated with an element type "Connector" must be followed by the ' = ' character. SEVERE [main] org.apache.catalina.startup.Catalina.start Cannot start server. Server instance is not configured. =============================================================== root ユーザーでstartup.sh を実行したので、shutdown.sh で停止させようとしたのですが 長いエラーが表示され、一部しか確認できないのですが ===============================================================org.apache.catalina.startup.Catalina stopServer SEVERE: Catalina.stop: org.xml.sax.SAXParseException; systemId: file:/user/local/java/apache-tomcat-8.0.53/conf/server.xml; LineNumber: 96; columNumber: 61; Attribute name "minSpareThreads" associated with an element type "Connector" must be followed by the ' = ' character. =============================================================== と表示されます。 server.xml の96行目を確認すると <Connector port="8009" maxThreads="5120" minSpareThreads="50" maxSpareThreads="2560" connectionTimeout="20000" protpcol="AJP/1.3" redirectPort~"8443" /> なのですが、これは最初の時から変えていません。 エラーになったので、systemctl status tomcat で確認してもやはり、Active:active(exited)となるので、停止されていません。 ps -ef | grep tomcat を実行すると root 26337 25173 0 08:07 tty1 00:00:00 grep --color=auto tomcat と表示されるのですが、これを見ると起動していないのでしょうか? プロセスIDがわかれば、kill コマンドで強制的に停止できるとなっていたのですが。
TaichiYanagiya

2023/06/30 00:31

「redirectPort~"8443"」→「redirectPort="8443"」 Typo と思われますが、実際に「=」ではなく「~」となっているのですか? 同様に minSpareThreads 箇所が「=」となっているか確認ください。
usa_kame

2023/06/30 01:20

<Connector port="8009" maxThreads="5120" minSpareThreads="50" maxSpareThreads="2560" connectionTimeout="20000" protpcol="AJP/1.3" redirectPort~"8443" /> となっていて、minSpareThreads="50" と redirectPort~"8443" がエラーになっていたので、 <Connector port="8009" protcol="AJP/1.3" redirectPort="8443" /> に修正しました。 そして、apache-tomcat-8.0.53 の所有者がroot になっていたので、tomcat に変更し shutdown.shstartup.sh を行い、httpd も再起動したところ、Tomcatも起動(:8080で管理画面表示)、GroupSession も起動しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問