Tomcat catalina.shが正しく起動されますが、tomcat.serviceを起動すると権限が返されます。

Tomcat catalina.shが正しく起動されますが、tomcat.serviceを起動すると権限が返されます。

背景

RHEL 8では、Apache Tomcat v8.5.78を/opt/tomcat/。ディレクトリのユーザーとグループは、tomcat:tomcatディレクトリの内容と同じように設定されます。

トムキャットを始めることができます。

$ sudo -u tomcat /opt/tomcat/bin/catalina.sh start

それでは、次のファイルを渡そうとしますsystemctltomcat.service

[Unit]
Description=Tomcat Server
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment='JAVA_OPTS=-Djava.awt.headless=true'
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment='CATALINA_OPTS=-Xms512M -Xmx2048M'
ExecStart=/opt/tomcat/bin/catalina.sh start
ExecStop=/opt/tomcat/bin/catalina.sh stop

[Install]
WantedBy=multi-user.target

サービスユーザーとグループも&tomcatに設定されています。tomcat

質問

systemctlを介してTomcatを起動するとき:

$ sudo systemctl start tomcat.service

「tomcat.service操作に失敗しました...」というメッセージが表示されます。systemctl status tomcat.serviceプログラム

● tomcat.service - Tomcat Server
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2022-06-22 12:11:59 AEST; 1min 29s ago
  Process: 1641092 ExecStart=/opt/tomcat/bin/catalina.sh start (code=exited, status=203/EXEC)

そしてjournalctl -xe以下を提供します:

-- Unit tomcat.service has begun starting up.
Jun 22 11:41:47 my.server.local systemd[1638136]: tomcat.service: Failed to execute command: Permission denied
Jun 22 11:41:47 my.server.local systemd[1638136]: tomcat.service: Failed at step EXEC spawning /opt/tomcat/bin/catalina.sh: Permission d>-- Subject: Process /opt/tomcat/bin/catalina.sh could not be executed

systemctlサービスファイルが手動で起動したときと同じユーザーを指定した場合、権限の問題が報告されるのはなぜですか?

追加情報

トム猫バージョン

Tomcatのバージョンが必要です。最新バージョンにアップグレードできません。

私はまた何を試しましたか?

  1. 読むhttps://unix.stackexchange.com/a/498494/45940私はtomcat.serviceディレクティブでこれを試しましたが、Type=oneshot成功しませんでした。

  2. 読むhttps://stackoverflow.com/a/58301082/65889tomcat.service作業ディレクトリを次に設定しようとしましたが、/opt/tomcat/bin成功しませんでした。

答え1

.sh私の場合は、ディレクトリのファイル権限でした/bin。すべてx(実行可能)フラグはありません。

関連情報