背景
RHEL 8では、Apache Tomcat v8.5.78を/opt/tomcat/
。ディレクトリのユーザーとグループは、tomcat:tomcat
ディレクトリの内容と同じように設定されます。
トムキャットを始めることができます。
$ sudo -u tomcat /opt/tomcat/bin/catalina.sh start
それでは、次のファイルを渡そうとしますsystemctl
。tomcat.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のバージョンが必要です。最新バージョンにアップグレードできません。
私はまた何を試しましたか?
読むhttps://unix.stackexchange.com/a/498494/45940私は
tomcat.service
ディレクティブでこれを試しましたが、Type=oneshot
成功しませんでした。読むhttps://stackoverflow.com/a/58301082/65889
tomcat.service
作業ディレクトリを次に設定しようとしましたが、/opt/tomcat/bin
成功しませんでした。
答え1
.sh
私の場合は、ディレクトリのファイル権限でした/bin
。すべてx
(実行可能)フラグはありません。