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

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

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

systemdは、Linuxの起動処理及びシステム管理を行う技術です。他にも多くのサービス管理機能を備えており、ユーザープロセスを並列に起動しシステムの起動処理に要する時間を短縮できるなどの特徴があります。

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Tomcat

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

Apache Tomcat

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

受付中

Tomcat(JSVC)停止時に終了ステータス「255」でfailedとなる

kikikiki
kikikiki

総合スコア0

systemd

systemdは、Linuxの起動処理及びシステム管理を行う技術です。他にも多くのサービス管理機能を備えており、ユーザープロセスを並列に起動しシステムの起動処理に要する時間を短縮できるなどの特徴があります。

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Tomcat

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

Apache Tomcat

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

0回答

0評価

0クリップ

463閲覧

投稿2021/05/27 01:49

編集2022/01/12 10:55

前提・実現したいこと

初めて質問させていただきます。
現在Tomcatを使用してお客様のクラウド環境にてWebサーバーを運用しています。
最近になって日次で実施しているTomcatの停止処理にて定期的にエラーが発生するようになりその原因を調査しています。
調査は継続して実施しているのですが、依然はっきりとした原因が判明しておらずこちらに質問させていただきました。

発生している問題・エラーメッセージ

OSはRedHat7でSystemdとjsvcを用いてサービスの管理しており、毎日0時(cron使用)にバックアップ処理の為Tomcatを停止、起動しているのですが、数ヶ月前から停止処理の際にエラーを検知するようになりました。
この停止処理ではsystemctl stop tomcat.serviceで停止処理を実行し、systemctl is-failed tomcat.serviceで異常なく停止処理が実行されたかを確認しています。
こちらのsystemctl is-failed tomcat.serviceの判定にてTomcatサービスがfailedになっており、jounalctlで詳細を調べたところ終了ステータスが「255」で終了しているためfailedと判定されているようでした。
しかしfailedの判定は出ているのですが、Tomcat自体は停止できており、その後の起動処理は正常に終了している状況です。
以下jounalctlで出力したTomcatの停止処理部分のメッセージです。

5月 20 18:40:27 localhost.localdomain systemd[1]: Stopping Tomcat... -- Subject: Unit tomcat.service has begun shutting down -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit tomcat.service has begun shutting down. 5月 20 18:40:27 localhost.localdomain systemd[1]: tomcat.service: control process exited, code=exited status=255 5月 20 18:40:29 localhost.localdomain systemd[1]: Stopped Tomcat. -- Subject: Unit tomcat.service has finished shutting down -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit tomcat.service has finished shutting down. 5月 20 18:40:29 localhost.localdomain systemd[1]: Unit tomcat.service entered failed state. 5月 20 18:40:29 localhost.localdomain systemd[1]: tomcat.service failed.

該当のソースコード

以下、現在使用しているTomcatのsystemdの設定及び、jsvcの起動スクリプトの中身となります。

unit

[Unit] Description=Tomcat After=network.target [Service] Type=forking PIDFile=/var/run/tomcat.pid User=root Group=root Environment="CATALINA_HOME=/usr/local/tomcat" Environment="CATALINA_BASE=/ap/tomcat" Environment="CATALINA_PID=/var/run/tomcat.pid" Environment="JAVA_HOME=/usr/java/latest" Environment="TOMCAT_USER=tomcat" EnvironmentFile=/ap/tomcat/bin/setenv.sh ExecStart=/usr/local/tomcat/bin/jsvc.sh start ExecStop=/usr/local/tomcat/bin/jsvc.sh stop ExecReload=/usr/local/tomcat/bin/jsvc.sh restart [Install] WantedBy=multi-user.target

bash

#!/bin/sh start() { /usr/local/tomcat/bin/jsvc \ -umask 022 \ -debug \ ${CATALINA_OPTS} \ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ -Djava.util.logging.config.file=${CATALINA_BASE}/conf/logging.properties \ -cp ${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar \ -Dcatalina.base=${CATALINA_BASE} \ -Dcatalina.home=${CATALINA_HOME} \ -Djava.endorsed.dirs=${CATALINA_HOME}/common/endorsed \ -Djava.io.tmpdir=${CATALINA_BASE}/temp \ -user ${TOMCAT_USER} \ -home ${JAVA_HOME} \ -outfile ${CATALINA_BASE}/logs/catalina.out \ -pidfile ${CATALINA_PID} \ org.apache.catalina.startup.Bootstrap } stop() { /usr/local/tomcat/bin/jsvc \ -stop \ -pidfile ${CATALINA_PID} \ org.apache.catalina.startup.Bootstrap } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo $"Usage: jsvc {start|stop|restart}" exit 1 ;; esac

試したこと

調査したところjsvcで指定したPIDファイルが読み込めない場合に終了ステータスが「255」となるようなので、開発の環境にて停止処理の前に実際にPIDファイルを削除し確認したところ、同様に終了ステータスが「255」となりサービスがfailedになることまでは確認できています。
複数回発生しているjournalctlのログでは、Tomcatのstop処理の途中に0anacronや0yum-cronが実行された場合に当エラーが発生しているようなので、これらのcronがPIDファイルに何かしら影響を及ぼすことで読込ができなくなっているのでは?と推測しているのですが実際にそうなのか確証が得られない状況です。

補足情報(FW/ツールのバージョンなど)

以下OS等の情報となります

  • OS:RedHat 7
  • Tomcat:5.5.36
  • jsvc:1.0.10

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

systemd

systemdは、Linuxの起動処理及びシステム管理を行う技術です。他にも多くのサービス管理機能を備えており、ユーザープロセスを並列に起動しシステムの起動処理に要する時間を短縮できるなどの特徴があります。

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Tomcat

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

Apache Tomcat

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